在前幾天簡單地測試了一下Mono 3.2.3 TCP處理的穩定性,有同學問Mono 3.2.3的TCP處理性有怎樣,以下是針對Mono 3.2.3TCP在吞吐方面的效能測試.主要測試分兩種場分別是連線互動密集度高和低的兩種情況的處理效能指標.
測試環境描述
服務端:
cpu:e4300 1.7g (5,6年前比較老的PC)
記憶體:2g
作業系統:centos 6.4 32位
mono版本:3.2.3
測試client:
cpu:e31230v2(4核8執行緒)
記憶體:8G
作業系統:win2008r2
測試用例1
測試採用請求應答模式,Client在請求後等伺服器應答後馬上進行下一次處理,處理資料大概在1K左右.測試的連線數分別是1000,2000,5000.具體測試結果如下:
- 1000
- 2000
- 5000
測試用例2
測試採用間隔一段時間傳送請求,每個連線每秒傳送一個請求,測試的連線數分別是2000,5000,10000.具體測試結果如下:
- 2000
- 5000
- 10000
總結
總的來說在Mono裡影響效能的是資料互動量即Socket的讀寫數量,連線數量的多或少倒起不到有多大的影響.從測試結果上來看針對以上硬體處理1K資料的IO峰值最大估計在每秒2W讀+2W寫左右,這個效能可以滿足很多場景的需要包括一些遊服務端的應用.不過總體效能和windows下比起來還是有點差距,這個差距也有可能是程式碼實現上導致.畢竟測試服務端的程式碼並沒有針對mono作任何的調整.