继续以流水帐的方式向你们汇报,自从上周六上午将 .net core 版博客站点从 windows 部署切换到 linux 上的 docker-compose 部署后,到目前一直在线。html
Linux 上没有出如今 windows 上遇到的一晚上以后内存占用持续太高的 GC 偷懒状况,但这并不能说明 .net core gc 在 windows 有问题,多是因为某种状况让 gc 以为不须要回收,因为咱们的 .net core 版博客系统只会部署在 linux 上,因此 windows 上的问题不继续排查。linux
数据库服务器 CPU 100% 仍是会出现,问题很是奇怪,并且很难复现,目前排查没有进展。上周五下午 18:00 左右,遇到的 CPU 100% 问题更是诡异,服务器没有接入流量,在容器启动后一个 curl 请求就让数据库服务器 CPU 100%,也有多是巧合。docker
在 Linux 上遇到了一个新的问题,有时阿里云负载均衡会报 502 错误,刷新一下就会好,.NET Core 日志中没有对应的日志,目前还没找到问题的线索。数据库
咱们遇到的高并发性能问题也引发了微软 .NET Core 团队的关注,并获得了他们的技术支持,帮咱们分析了经过 dotnet-trace 收集的 profile 数据(收集数据期间没有发生数据库 CPU 100%), 但没有发现问题的线索。windows
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 问题,咱们会进一步排查。curl
另外,咱们也在优化程序减小 CPU 的消耗。ide
更新:
502 问题怀疑是负载均衡中某台服务器 CPU 出现波动忽然跳到 100% ,若是用的是 windows ,表现是 503 ;如今用的是 linux ,表现就是 502 。
Powered by .NET Core 系列博文:
园友相关博文:
原文出处:https://www.cnblogs.com/cmt/p/11375246.html