.net socket在win2008下的吞吐性能報告

對於.net socket的性能問題,似乎MS也沒有象WCF一樣出個詳細的報告,在很多人的使用情況來看性能方面並不理想。如果你比較關注這方面的東西,那這個測試的報告應該可以給你幫助對.net socket性能方面有個更多的瞭解。如果你擔心.net socket的性能是否滿足遊戲服務端或應用網關的需要,以下測試結果相信也可以給到你一個明確的答案。

測試簡述

爲了更接近實際應用情況,測試流程 主要如下:數據接收->協議分析->數據反序列化成協議消息對象->消息對象分發->構建應答對象->序列化成協議數據 ->發送;而整個測試流程只缺少邏輯處理,不同應用邏輯處理存在差異,導致損耗也不一樣所以並沒有歸納到測試裏去.測試用例分別有:1)高連接高並 發,2)低連接密集併發,3)狀態廣播等三種情況.

測試硬件如下:

  • 服務器採用E1230 V2版的至強CPU,8G內存和WIN2008R2的操作系統
  • 測試客戶端則使用了三臺配置低的臺式機,2G內存和WIN2003操作系統

由於網絡環境和測試客戶端配置問題,並沒進行極端的壓力模擬

測試1

這個測試主要有三種情況,分別是10000連接,20000連接,30000連接;每個連接每秒向服務器發送一個請求,服務器接收請求後進行處理分發並進行應答

發請請求內容:

?
1
2
3
Register register = new Register();
register.UserName="henryfan";
register.EMail ="[email protected]";

應用答內容:

?
1
2
3
4
5
6
7
8
9
10
11
User user= new User();
user.Name = "henryfan";
user.EMail = "[email protected]";
user.City = "guangzhou";
user.Counrty = "china";
user.ID = 2324;
user.Age = 45;
user.BirthDay = 45454545;
user.Enabled = true;
user.FData = 4454.45f;
user.DData = 34343242.242;

三種情況的CPU,內存,網絡等資源狀況:

 

測試2

這個測試主要是針對連接相對比較少,但交互量比較大的應用如遊戲.測試分別是1000,2000和3000連接三種情況,每個連接向服務端發出一個請求,服務端接收處理後進行應答,客戶端得到應答後馬上進入一下次請求.
發送請求內容:
?
1
Get get = new Get();
應答內容:
?
1
2
3
4
5
6
7
8
9
10
11
12
GetResponse response = new GetResponse();
response.User = new User();
response.User.Name = "henryfan";
response.User.EMail = "[email protected]";
response.User.City = "guangzhou";
response.User.Counrty = "china";
response.User.ID = 2324;
response.User.Age = 45;
response.User.BirthDay = 45454545;
response.User.Enabled = true;
response.User.FData = 4454.45f;
response.User.DData = 34343242.242;
三種情況的CPU,內存,網絡等資源狀況:


測試3

連接廣播測試,這種在遊戲場景中比較多,就是一個玩家狀態變化後通知相鄰的玩家,這種情況的數據交互非常大;以下測試是針對500連接的狀態廣播,連接每秒轉發兩次狀態變更,服務器把變更信息轉發給其他499個連接,其消息轉發總量是每秒50W條.

轉發信息如下:

?
1
2
3
4
5
Po postion = new Po();
Point point = client.GetPoint();
postion.Type = client.GetClientType();
postion.X = Convert.ToInt16(point.X);
postion.Y = Convert.ToInt16(point.Y);

CPU,內存,網絡等資源狀況:

以上測試並沒有通過1比1的IO來達到50W的消息轉發,從測試數據來看發送50W消息所使用發送IO大概是1W多來進行處理,因爲同時多個消息發向一個連接,可以把消息進行合併處理來緩解IO所帶的壓力.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章