Powered by .NET Core 进展0819:高速开车车况汇报

继续以流水账的方式向大家汇报,自从上周六上午将 .net core 版博客站点从 windows 部署切换到 linux 上的 docker-compose 部署后,到目前一直在线。
Linux 上没有出现在 windows 上遇到的一夜之后内存占用持续过高的 GC 偷懒情况,但这并不能说明 .net core gc 在 windows 有问题,可能是由于某种情况让 gc 觉得不需要回收,由于我们的 .net core 版博客系统只会部署在 linux 上,所以 windows 上的问题不继续排查。
数据库服务器 CPU 100% 还是会出现,问题非常奇怪,而且很难复现,目前排查没有进展。上周五下午 18:00 左右,遇到的 CPU 100% 问题更是诡异,服务器没有接入流量,在容器启动后一个 curl 请求就让数据库服务器 CPU 100%,也有可能是巧合。
在 Linux 上遇到了一个新的问题,有时阿里云负载均衡会报 502 错误,刷新一下就会好,.NET Core 日志中没有对应的日志,目前还没找到问题的线索。
我们遇到的高并发性能问题也引起了微软 .NET Core 团队的关注,并得到了他们的技术支持,帮我们分析了通过 dotnet-trace 收集的 profile 数据(收集数据期间没有发生数据库 CPU 100%), 但没有发现问题的线索。
dotnet-trace 在容器内收集 prfile 数据的命令如下
export PATH="$PATH:/root/.dotnet/tools
dotnet-trace list-processes
dotnet-trace collect --process-id <pid> --providers Microsoft-Windows-DotNETRuntime
注:容器需要使用 .net core sdk 镜像才能安装 dotnet-trace 。
今天上午下午的访问高峰,行驶平稳。
对于 100% 与 502 问题,我们会进一步排查。
另外,我们也在优化程序减少 CPU 的消耗。
更新:
502 问题怀疑是负载均衡中某台服务器 CPU 出现波动突然跳到 100% ,如果用的是 windows ,表现是 503 ;现在用的是 linux ,表现就是 502 。
Powered by .NET Core 系列博文:
- 【故障公告】发布 .NET Core 版博客站点引起大量 500 错误
- 【网站公告】.NET Core 版博客站点第二次发布尝试
- 暴风雨中的 online : .NET Core 版博客站点遭遇的高并发问题进展
- Powered by .NET Core 进展:验证高并发性能问题嫌疑犯 docker swarm
- 同“窗”的较量:部署在 Windows 上的 .NET Core 版博客站点发布上线
- 做梦也没有想到:Windows 上的 .NET Core 版博客系统表现更糟糕
- 峰回路转:去掉 DbContextPool 后 Windows 上的 .NET Core 版博客表现出色
- Powered by .NET Core 进展0815:第5次发布尝试(Windows部署)
- 高速开车换底盘记:Windows 与 Linux 部署都抗住了,但修车任务艰巨
园友相关博文:
Powered by .NET Core 进展0819:高速开车车况汇报的更多相关文章
- Powered by .NET Core 进展:第5次发布尝试(Windows部署)
(图注:Windows 自带的性能监控,红色表示 CPU 占用,绿色表示 QPS) 今天中午 12:30 左右,我们进行了 .NET Core 博客站点的第5次发布(页脚会显示"Powere ...
- Powered by .NET Core 进展:用 docker-compose 验证高并发问题嫌疑犯 docker swarm
相关博文: [故障公告]发布 .NET Core 版博客站点引起大量 500 错误 [网站公告].NET Core 版博客站点第二次发布尝试 暴风雨中的 online : .NET Core 版博客站 ...
- 高速开车换底盘记:Windows 与 Linux 部署都抗住了,但修车任务艰巨
抱歉,又是一篇流水账,在排查问题的焦头烂额中写博客的确是一个挑战,望大家见谅. 今天园友溪源More发了一篇博文博客园翻车启示录,而翻车之后的最新进展是——昨天下午我们又把 .net core 引擎的 ...
- k8s 开船记-全站登船:Powered by .NET Core on Kubernetes
今天 18:30 左右,我们迈出了 kubernetes 航行的关键一步——全站登船,完成了全站应用从 docker swarm 集群向 k8s 集群的切换,以前所未有的决心与信心重新开起这艘巨轮,而 ...
- 行车记+翻车记:.NET Core 新车改造,C# 节能降耗,docker swarm 重回赛道
非常抱歉,10:00~10:30 左右博客站点出现故障,给您带来麻烦了,请您谅解. 故障原因与博文中谈到的部署变更有关,但背后的问题变得非常复杂,复杂到我们都在怀疑与阿里云服务器 CPU 特性有关. ...
- 同“窗”的较量:部署在 Windows 上的 .NET Core 版博客站点发布上线
为了验证 docker swarm 在高并发下的性能问题,周一我们发布了使用 docker-compose 部署的 .net core 版博客站点(博文链接),但由于有1行代码请求后端 web api ...
- 做梦也没有想到:Windows 上的 .NET Core 表现更糟糕
昨天晚上 18:15 左右我们发布了跑在 Windows 上 .NET Core 博客系统,本想与 .NET Framework 版进行同“窗”的较量,结果刚发布上线就发现 CPU 占用异常高,发布不 ...
- 峰回路转:去掉 DbContextPool 后 Windows 上的 .NET Core 版博客表现出色
今天早上,我们修改了博客程序中的1行代码,将 services.AddDbContextPool 改为 services.AddDbContext ,去掉 DbContextPool . 然后奇迹出现 ...
- Introducing .NET Core
At connect(), we announced that .NET Core will be entirely released as open source software. I also ...
随机推荐
- 如何在vue中监听scroll,从而实现滑动加载更多
首先需要明确3个定义: 文档高度:整个页面的高度 可视窗口高度:你看到的浏览器可视屏幕高度 滚动条滚动高度: 滚动条下滑过的高度 当 文档高度 = 可视窗口高度 + 滚动条高度 时,滚动条正好到底. ...
- Java编程思想:嵌套类
public class Test { public static void main(String[] args) { // Parcell11.test(); // ClassInterface. ...
- [原创]MYSQL周期备份shell脚本
这个脚本是实现阿里云mysql数据库全量周期备份的shell脚本,实现备份数据按一周星期几分开存放.一下是脚本内容: #!/bin/bash echo `date`echo "backup ...
- mimalloc内存分配代码分析
这篇文章中我们会介绍一下mimalloc的实现,其中可能涉及上一篇文章提到的内容,如果不了解的可以先看下这篇mimalloc剖析.首先我们需要了解的是其整体结构,mimalloc的结构如下图所示 ...
- Shiro在Web环境下集成Spring的大致工作流程
1,Shiro提供了对Web环境的支持,其通过一个 ShiroFilter 入口来拦截需要安全控制的URL,然后进行相应的控制. ①配置的 ShiroFilter 实现类为:org.spri ...
- jmeter性能小试全流程
大纲: 1.添加线程组:虚拟用户 2.添加测试对象:比如http请求 3.查看结果 一.添加线程组. 1.线程是what: JMeter是由Java实现的,并且使用一个Java线程来模拟一个用户,因此 ...
- luogu题解 P5022 【旅行】
本人的代码可以说洛谷最简单的了 我的存图方式有些与众不同 a[5000][5000]中第一个下标表示第几个点,第二个表示与点相连的点 虽然比前向星废内存但时间极快,大概是O(n)的. 现在步入正题 6 ...
- 2015.11.27---Java
public class star{ public static void main(String[] args) { System.out.print("ha"); } }
- zabbix3.4用Python脚本Excel批量导入主机
1.安装xlrd读取Excel文件 1.1. 下载setuptools-38.2.4.zip,上传至zabbix服务器解压安装,下载地址:https://pypi.python.org/package ...
- UTF—8与UTF—8(无bom)格式
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF.而FFFE在U ...