Ser*_*gel 5 c# performance cpu-usage response-time asp.net-web-api
我们在HAProxy后面的3台服务器上运行Asp.Net WebApi.HAProxy只是在这3个实例之间随机分配请求.
这些实例连接到mongodb,redis和一些Windows服务.
通常,w3wp.exe在每个api服务器上使用大约%30 cpu.
有时(一小时几次)其中一个api服务器决定使用大量的cpu.与此行为相关,我们开始看到响应时间增加.数字不断增加,直到HAProxy看到10000毫秒的响应时间,并决定将请求路由到其他两个服务器.所有这些都在10-20秒内发生.一段时间后,此服务器返回其正常状态并再次开始接收请求.几分钟后,另一台服务器做了完全相同的事情.这种情况一直持续下去.
我们正在使用New Relic,但由于该应用程序是WebApi应用程序,因此我们没有获得任何有用的信息.我们监控所有服务器(redis,mongo和windows服务)的CPU使用率,内存使用率,网络流量和I/O,但在上述中断期间我们没有看到任何重大负载.
我们如何检测此应用程序行为背后的原因?
一个不错的选择是使用 Process Explorer 之类的工具进行小型转储,然后使用 WinDBG 或其他方式检查它,以查看线程正在做什么等等。我在这里有一篇关于如何做到这一点的很好的博客文章:
http://www.haneycodes.net/but-it-didnt-happen-in-dev-or-qa/
归档时间: |
|
查看次数: |
2613 次 |
最近记录: |