我已經建立了一個 apache + mod_mono asp.net mvc3 網站,但我遇到了一些奇怪的問題。
有時,由於我不知道的原因,網站會停止回應。
發生這種情況時,我透過ssh 進入我的Linode 帳戶(我在其中託管網站)並運行“top”,只是為了驗證mono 進程是否使用了高達400% 的CPU(這怎麼可能?虛擬化,也許? )很多記憶。
據推測,這是一個已知問題(看到這個)。然而,我的網站很新,線上訪客從來沒有超過 10-20 個,所以高負載是不可能的。
我在本地也做了一些壓力測試,沒有出現這個問題。這個問題僅出現在我的生產伺服器(24/7 運行)上,這讓我認為單聲道可能需要偶爾重新啟動一次(儘管我想知道為什麼在我的情況下需要這樣做,因為我的網站還是很低調)。為此,我為單聲道設定了兩個小時的自動重啟時間。即使在此之後,問題仍然出現(儘管頻率較低)。
然後,我立即想到配置 MonoMaxActiveRequests 和 MonoMaxWaitingRequests,但事實是我不知道這些值應該低還是高以避免我面臨的問題。我也不明白為什麼 MonoMaxWaitingRequests 預設值只有 20。
總的來說,我的問題是:我做錯了什麼或 mod mono 仍然有問題嗎?我如何知道 MonoMaxActiveRequests 和 MonoMaxWaitingRequests 的哪些值是合理的?我應該增加還是減少這些值以避免報告的問題?
提前致謝。
答案1
MonoMaxActiveRequests 和 MonoMaxWaitingRequests 使該值為 0。
並設定 MonoAutoRestartMode 請求 1000