天天看點

ESFramework網絡通信架構 4.0 性能測試  本實驗用于測試ESFramework網絡通信架構服務端引擎的性能,測試程式使用ESFramework 4.0版本。

測試的機器總共有3台,都是普通的PC,一台作為伺服器,兩台作為用戶端。

作為伺服器是PC配置如下:

作業系統:Windows Server 2003 Enterprise Edition SP2

CPU:Pentium Dual-Core CPU E5400 @ 2.70GHz

記憶體:2G

       本實驗所采用的政策是這樣的:

(1)每個用戶端執行個體首先與伺服器建立N個TCP連接配接,然後依次在每個TCP連接配接上發送一個36位元組的消息。周遊一次完畢後,等待(Sleep)M毫秒,再進行下一輪周遊發送。

(2)服務端接收到消息後,解析消息,然後累加消息的個數。

(3)用戶端統計已發消息的總數,并計算上一秒發送的請求數。

(4)服務端統計已接收消息的總數,并計算上一秒接收的請求數。

1.測試方案一:連接配接總數3000,每輪發送間隔100ms

(1)在作為伺服器的PC上啟動服務端。

  

(2)在作為用戶端的兩台PC上分别運作一個用戶端執行個體。每個用戶端執行個體設定連接配接數1500,每輪發送的間隔為100。

(3)如此,服務端的總的連接配接數為3000,以下是運作一段時間後的截圖:  

         

  在該測試過程中,服務端的每秒處理的消息數量在26000 ~30000之間波動,而CPU持續在80%以上。

      另外,在用戶端的PC上通過NetLimitter可以看到每個連接配接上發出的資料流量:

2.測試方案二:連接配接總數6000,每輪發送間隔300ms

       将方案一啟動的各程式全部關掉,重頭再來一次。

   

(2)在作為用戶端的兩台PC上分别運作一個用戶端執行個體。每個用戶端執行個體設定連接配接數3000,每輪發送的間隔為400。

(3)如此,服務端的總的連接配接數為6000,以下是運作一段時間後的截圖:   

          

   在該測試過程中,服務端的每秒處理的消息數量在14000 ~18000之間波動,而CPU持續在65%以上。

        除此兩種方案的測試以外,我們還進行了其它方案的測試,比如設定更小的連接配接數和更小的發送間隔,或設定更大的連接配接數和更大的發送間隔。測試反映,這台作為伺服器的PC能承載的最佳并發連接配接數在4000左右,此時,伺服器的吞吐量可以達到最大(每秒處理30000個左右的消息)。當連接配接數進一步增加時,吞吐量會降下來。最佳并發連接配接數和最大吞吐量的值與伺服器機器的配置密切相關。

        本文末會提供測試程式的壓縮包下載下傳。在壓縮包内附帶了測試的服務端和用戶端程式,有興趣的朋友可以在自己的伺服器上做更多的政策測試。在自己運作測試時,要注意以下幾點:

(1)服務端最好運作在一台單獨的機器上。如果用戶端也運作在服務端所在的機器上,則會嚴重地影響服務端的吞吐量。

(2)合理地設定用戶端的連接配接數和發送時間間隔。

(3)用戶端運作的機器的作業系統對tcp連接配接數可能有最大值限制(有的是三千多),如果遇到這種系統,而單個用戶端執行個體的連接配接數的設定又大于這個限制值,則會導緻後續的tcp連接配接失敗。若發生這種情況,請關閉用戶端并重新開機,然後設定較小的連接配接數,再次測試。可以多開幾個用戶端執行個體,來增加連接配接數。

(4)如果伺服器上有防火牆軟體,可能會影響測試結果,最好關閉伺服器上的防火牆進行測試。

繼續閱讀