mod mono 在某些情况下会消耗大量内存和 CPU。如何改善这种情况?

mod mono 在某些情况下会消耗大量内存和 CPU。如何改善这种情况?

我已经建立了一个 apache + mod_mono asp.net mvc3 网站,但我遇到了一些奇怪的问题。

有时,出于某种我不知道的原因,网站会停止响应。
当这种情况发生时,我会通过 ssh 进入我的 Linode 帐户(我托管网站的地方)并运行“top”,结果发现 mono 进程占用了高达 400% 的 CPU(这怎么可能?可能是虚拟化?)和大量内存。
据说这是一个已知问题(看到这个)。但是,我的网站刚刚建立,在线访客数量从未超过 10-20 人,因此高负载是不可能的。

我也在本地做了一些压力测试,问题没有出现。这个问题只出现在我的生产服务器上(全天候运行),这让我想到可能是 mono 需要偶尔重启(虽然我想知道为什么在我的情况下需要这样做,因为我的网站仍然很低调)。为此,我为 mono 设置了两小时的自动重启时间。即使在此之后,问题仍然出现(尽管频率较低)。

然后,我立即想到配置 MonoMaxActiveRequests 和 MonoMaxWaitingRequests,但事实是我不知道这些值应该低还是高才能避免我面临的问题。我也不明白为什么 MonoMaxWaitingRequests 的默认值只有 20。这是否意味着我的服务器只能处理 40 个同时请求,因为等待线不能超过 20?

总的来说,我的问题是:我做错了什么,还是 mod mono 仍然存在问题?我怎么知道 MonoMaxActiveRequests 和 MonoMaxWaitingRequests 的值是合理的?我应该增加这些值还是减少它们以避免报告的问题?

提前致谢。

答案1

MonoMaxActiveRequests 和 MonoMaxWaitingRequests 使该值为 0。

并设置 MonoAutoRestartMode 请求 1000

相关内容