ASP.NET 高 CPU 使服务器不堪重负

8 windows performance asp.net .net

好的,我们的新版本在每台服务器上随机出现 100% 的 CPU 峰值。在很长一段时间内,它会使网站完全没有响应——这将是在高峰时间,因为不同国家的人们登录网站等。

我们查看了 perfmom、内存分析器、CLR 分析器、sql 分析器、红门蚂蚁分析器,尝试在 UAT 中进行负载测试 - 但甚至无法重现问题。这可能意味着只有数以千计的用户点击实时站点才会导致它发生。

我们注意到的一种模式是新代码——损坏的构建——实际上使用了明显更少的线程。

我们也在国际奥委会使用弹簧——这有床名吗?

更糟糕的是,由于业务影响,我们无法部署到现场 - 因此无法将问题缩小到我们添加的新功能的子集。

我们真的被摧毁了——有没有人有任何可以挽救我们几条生命的战斗伤痕?

小智 1

这通常是由 GC 中的大型长期对象清理引起的(stackoverflow 存在此问题,请参阅链接)。您是否在缓存或会话中存储大量对象集合?

GC攻击

我还建议您在生产中构建并配置一个新服务器以进行测试。如果你有随机的疯狂并且不知道为什么并且无法重现它,我会把矛头指向硬件或配置,而不是代码。