如何在压力下限制nginx mono-fastcgi服务器cpu的使用

时间:2013-12-09 09:58:50

标签: asp.net-mvc nginx mono fastcgi fastcgi-mono-server

MVC4 / Mono 3.2.1应用程序在Nianx和Debian中运行 mono-fastcgi-4服务器。它以

开头
MONOSERVER=$(which fastcgi-mono-server45)
WEBAPPS="/:/var/www/html/test/"
${MONOSERVER} /applications=${WEBAPPS} /socket=tcp:127.0.0.1:9000 &

测试时,浏览器F5键按住30秒。 之后有很长的延迟,浏览器显示页面加载图标。 延迟消息后

504 Gateway Time-out
nginx/0.7.67

出现

和top命令(下面的输出)显示单声道fastcgi服务器需要200%的CPU 永远或长时间(2芯)。 只有这样才能手动和手动杀死mono fastcgi服务器 重启它

如何使单声道fastcgi立即返回页面,而不是使用这么多的CPU ?

如果同一个应用程序托管Apache和mod_mono,持有和 在浏览器返回时释放F5键 页面立即显示,并且在F5发布后,cpu使用率立即变为0 浏览器。

top - 00:40:38 up  1:43,  3 users,  load average: 16.49, 15.92, 15.35
Tasks:  59 total,   1 running,  58 sleeping,   0 stopped,   0 zombie
Cpu(s): 34.5%us, 65.5%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si, 
0.0%st
Mem:   2097152k total,   744828k used,  1352324k free,        0k buffers
Swap:        0k total,        0k used,        0k free,   120120k cached

  PID  VIRT  RES  SHR %CPU %MEM    TIME+  COMMAND
4366  500m 121m  21m  198  5.9   6:24.45 /opt/mono-3.2/bin/mono 
/opt/mono-3.2/lib/mono/4.5/fastcgi- ....

更新

回答 Bad gateway 502 after small load test on fastcgi-mono-server through nginx and ServiceStack

建议在nginx和fastcgi服务器中使用相同数量的线程。

我正在使用默认的nginx和mono fastcgi服务器配置,其中两者都可能允许1024个线程。

  • 单声道允许实际上更少的线程。也许这会引起问题,fastcgi mono server很老了?
  • 可以添加/复用到fastcgi mono服务器吗?
  • 减少上面这个功能不强的VPS服务器的线程数是否合理?
  • 是否有一些导致失败的单声道设置?
  • 没有任何内容写入fastcgi日志文件,如何诊断?

有关此问题的其他信息发布在https://stackoverflow.com/questions/20512978/how-to-limit-mono-197-cpu-usage-in-mono-fastcgi-server

0 个答案:

没有答案