继续以流水账的方式向大家汇报,自从上周六上午将 .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 系列博文:

园友相关博文:

Powered by .NET Core 进展0819:高速开车车况汇报的更多相关文章

  1. Powered by .NET Core 进展:第5次发布尝试(Windows部署)

    (图注:Windows 自带的性能监控,红色表示 CPU 占用,绿色表示 QPS) 今天中午 12:30 左右,我们进行了 .NET Core 博客站点的第5次发布(页脚会显示"Powere ...

  2. Powered by .NET Core 进展:用 docker-compose 验证高并发问题嫌疑犯 docker swarm

    相关博文: [故障公告]发布 .NET Core 版博客站点引起大量 500 错误 [网站公告].NET Core 版博客站点第二次发布尝试 暴风雨中的 online : .NET Core 版博客站 ...

  3. 高速开车换底盘记:Windows 与 Linux 部署都抗住了,但修车任务艰巨

    抱歉,又是一篇流水账,在排查问题的焦头烂额中写博客的确是一个挑战,望大家见谅. 今天园友溪源More发了一篇博文博客园翻车启示录,而翻车之后的最新进展是——昨天下午我们又把 .net core 引擎的 ...

  4. k8s 开船记-全站登船:Powered by .NET Core on Kubernetes

    今天 18:30 左右,我们迈出了 kubernetes 航行的关键一步——全站登船,完成了全站应用从 docker swarm 集群向 k8s 集群的切换,以前所未有的决心与信心重新开起这艘巨轮,而 ...

  5. 行车记+翻车记:.NET Core 新车改造,C# 节能降耗,docker swarm 重回赛道

    非常抱歉,10:00~10:30 左右博客站点出现故障,给您带来麻烦了,请您谅解. 故障原因与博文中谈到的部署变更有关,但背后的问题变得非常复杂,复杂到我们都在怀疑与阿里云服务器 CPU 特性有关. ...

  6. 同“窗”的较量:部署在 Windows 上的 .NET Core 版博客站点发布上线

    为了验证 docker swarm 在高并发下的性能问题,周一我们发布了使用 docker-compose 部署的 .net core 版博客站点(博文链接),但由于有1行代码请求后端 web api ...

  7. 做梦也没有想到:Windows 上的 .NET Core 表现更糟糕

    昨天晚上 18:15 左右我们发布了跑在 Windows 上 .NET Core 博客系统,本想与 .NET Framework 版进行同“窗”的较量,结果刚发布上线就发现 CPU 占用异常高,发布不 ...

  8. 峰回路转:去掉 DbContextPool 后 Windows 上的 .NET Core 版博客表现出色

    今天早上,我们修改了博客程序中的1行代码,将 services.AddDbContextPool 改为 services.AddDbContext ,去掉 DbContextPool . 然后奇迹出现 ...

  9. Introducing .NET Core

    At connect(), we announced that .NET Core will be entirely released as open source software. I also ...

随机推荐

  1. 如何在vue中监听scroll,从而实现滑动加载更多

    首先需要明确3个定义: 文档高度:整个页面的高度 可视窗口高度:你看到的浏览器可视屏幕高度 滚动条滚动高度: 滚动条下滑过的高度 当 文档高度 = 可视窗口高度 + 滚动条高度  时,滚动条正好到底. ...

  2. Java编程思想:嵌套类

    public class Test { public static void main(String[] args) { // Parcell11.test(); // ClassInterface. ...

  3. [原创]MYSQL周期备份shell脚本

    这个脚本是实现阿里云mysql数据库全量周期备份的shell脚本,实现备份数据按一周星期几分开存放.一下是脚本内容: #!/bin/bash echo `date`echo "backup ...

  4. mimalloc内存分配代码分析

    这篇文章中我们会介绍一下mimalloc的实现,其中可能涉及上一篇文章提到的内容,如果不了解的可以先看下这篇mimalloc剖析.首先我们需要了解的是其整体结构,mimalloc的结构如下图所示   ...

  5. Shiro在Web环境下集成Spring的大致工作流程

    1,Shiro提供了对Web环境的支持,其通过一个 ShiroFilter 入口来拦截需要安全控制的URL,然后进行相应的控制.      ①配置的 ShiroFilter 实现类为:org.spri ...

  6. jmeter性能小试全流程

    大纲: 1.添加线程组:虚拟用户 2.添加测试对象:比如http请求 3.查看结果 一.添加线程组. 1.线程是what: JMeter是由Java实现的,并且使用一个Java线程来模拟一个用户,因此 ...

  7. luogu题解 P5022 【旅行】

    本人的代码可以说洛谷最简单的了 我的存图方式有些与众不同 a[5000][5000]中第一个下标表示第几个点,第二个表示与点相连的点 虽然比前向星废内存但时间极快,大概是O(n)的. 现在步入正题 6 ...

  8. 2015.11.27---Java

    public class star{ public static void main(String[] args) { System.out.print("ha"); } }

  9. zabbix3.4用Python脚本Excel批量导入主机

    1.安装xlrd读取Excel文件 1.1. 下载setuptools-38.2.4.zip,上传至zabbix服务器解压安装,下载地址:https://pypi.python.org/package ...

  10. UTF—8与UTF—8(无bom)格式

    BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF.而FFFE在U ...