在生產環境下,MONO與.NET Framework的效能差別。
阿新 • • 發佈:2018-12-27
上個月公司專案需要,在騰訊社群開放平臺部署了基於mono的騰訊校友應用“公務員考試”。經過一週的觀察,發現問題非常大。
我們來看mono在騰訊伺服器上的CPU報表。
2月18日到2月24日的平均值在70.91%。而2月23日-3月1日平均值在76.61%。佔用的CPU非常高。
另一份基本相同的程式碼部署在Windows伺服器上,我們看這臺伺服器的CPU使用率。
這臺伺服器除了這個專案外,還負載了其它的Web專案。從報表反映的情況來看,執行狀態非常健康。
這兩臺伺服器的配置分別是:
Tencent:CPU-Xeon E5506*2(2.13GHZ),記憶體-7G,OS-Linux 2.6(suse),MONO2.8.2
Windows:CPU-Xeon E5420*4(2.50GHZ),記憶體-4G,OS-Windows Server 2003,.NET Framework。
在伺服器的配置上沒有辦法做直接的對比,附上Windows伺服器,只是想從一個側面來說明專案程式碼並不複雜,系統需要處理的計劃量並不多。
在訪問使用者數不高的情況下,單是MONO的守護程序就佔用了75.0%的CPU。
生產環境上是用Apache+mod_mono來做WEB站的,總的來看,對於WEB負載,MONO的情況並不理想。