【问题标题】:MONO 4.6.2 High CPU Usage on ServerMONO 4.6.2 服务器上的高 CPU 使用率
【发布时间】:2018-07-08 17:27:14
【问题描述】:

我更新了我的:

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

...来自官方存储库。

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

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

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

谢谢

编辑:2 天后,每个 MONO 进程都在占用全部 CPU。

查看 Apache2 日志文件,我发现这与 MONO 相关

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

另外,“service apache2 restart”也不能解决问题。我必须手动终止进程,或者重新启动。

【问题讨论】:

  • 不确定你的意思。我在 Windows 上使用 Visual Studio 2015 编写,并在 Ubuntu/MONO 上部署。这些网站多年来一直运行良好,直到更新为止。大多数情况下,我更新是因为我想使用需要 v4.2.3.4 或更高版本的 SQLite。
  • 抱歉,这只是个玩笑。您是否尝试过另一台机器或不同类型的 Mono 应用程序?否则,将错误归咎于 .net/mono 通常是大胆的。祝你好运:)
  • 有人在这里报告了同样的问题stackoverflow.com/questions/30691619/…
  • 我在这里也提交了一个错误;还没有回复bugzilla.xamarin.com/show_bug.cgi?id=52188
  • 'service apache2 reload' 随机导致 MONO 进程以 100% 运行。它第一次导致网站 A 100% 运行。第二次还好。第三次导致网站 B 和 C 去 100%。此外,其中一个网站是一个从未被调用过的测试网站,甚至还没有经过 JIT 编译。

标签: c# ubuntu mono apache2 ubuntu-16.04


【解决方案1】:

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

这些是开始的好地方

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

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

【讨论】:

    【解决方案2】:

    我玩过各种 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 有关,而不是与我的代码或服务器配置有关。

    【讨论】:

    • 很好的调查。你在这上面花了很多时间。希望有人注意到并进行修复
    • 今天早上,我的服务器再次以 100% 的 CPU 使用率... 会及时通知您。不过,这个版本肯定有一些不同,它不能通过 apache2 重新加载来复制。如果它继续发生,我会尝试 3.2.8
    • 我放弃了。这次我重新安装了一个全新的 VPN 并将文件传输过来。可能是就地操作系统升级搞砸了。许多人建议不要这样做。这应该可以解决它。
    • 该死。在一个全新的 Debian 服务器上,今天早上我仍然得到 6 个进程的高 CPU 使用率。除了现在我无法杀死他们。
    • 在 MONO 5.0 中修复了 CPU 使用率过高的问题! :D
    猜你喜欢
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 2020-03-31
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    相关资源
    最近更新 更多