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 系列博文:

园友相关博文:

posted @ 2019-08-19 17:51  博客园团队  阅读(5771)  评论(119编辑  收藏  举报