MONO 4.6.2服务器CPU使用率高



我已经更新了我的:

  • Ubuntu服务器到16.04.1 LTS
  • MONOv4.6.2

。。。来自官方存储库。

自更新以来,网站仍然运行良好,但大约一两天后,一些MONO进程变得疯狂,占用了CPU100%。我有不同的网站;大部分是纯HTML,只有一点点代码。它是随机发生的,每次都出现在不同的网站上。这完全是随机的。

然后,我收到一封CPU使用率高的电子邮件警报,通过SSH连接,键入"htop",然后终止进程,它就恢复正常了。。。一两天。

这看起来绝对像是MONO这个版本中的一个bug。有什么办法解决它吗?其他人有这个问题吗?或者我应该换一个没有这种损坏的版本?

感谢

编辑:2天后,EVERYMONO进程将占用全部CPU。

查看Apache2日志文件,我可以发现这与MONO 有关

WARNING: WebConfigurationManager's LRUcache evictions count reached its max size
Cache Size: 100 (overridable via MONO_ASPNET_WEBCONFIG_CACHESIZE)

此外,"service-apache2重新启动"并不能解决问题。我必须手动终止进程,或者重新启动。

在尝试了所有选项后,MONO似乎无法很好地与mod_MONO的Apache2配合使用。我找到的唯一解决方案是将Apache2从预工作模式切换到工作模式,在这种模式下,MONO服务器需要手动启动,Apache2只需将请求转发给它——因此Apache2根本不直接接触MONO。关于如何做到这一点的文档很少,但由于NGINX在该模式下工作,您可以找到如何为NGINX设置它并为Apache2翻译应用程序配置文件的说明。

这些是启动的好地方

http://www.mono-project.com/docs/web/fastcgi/nginx/

http://epmjunkie.com/mono-fastcgi-startup-script/

我玩过各种MONO版本,并键入"service apache2 reload"来重现高CPU使用率的问题。

在MONO 4.8中,这种情况似乎发生得不那么频繁,但问题仍然存在。

在MONO 4.2.3.4中,问题也存在。

在Ubuntu默认的MONO 4.2.1中,这个问题不会发生

至于.NET Core,有些人已经尝试过了,并强烈建议我在它变得更加稳定之前不要使用它。

因此,目前唯一的解决方案是坚持MONO 4.2.1

这也证实了这与MONO有关,而与我的代码或服务器配置无关。

最新更新