1. 程式人生 > >異數OS TCP協議棧測試(一)--資料傳輸篇

異數OS TCP協議棧測試(一)--資料傳輸篇

異數OS TCP協議棧測試(一)--資料傳輸篇

本文來自異數OS社群

 

github:  https://github.com/yds086/HereticOS

異數OS社群QQ群:  652455784

 異數OS-織夢師(訊息中介軟體)群: 476260389


測試目標

 

資料傳輸IO效能測試,主要是建立連線後測試收發資料的IO的效能,分為單向雙向兩種。

 

 

基本測試環境

VMware 12

異數OS宿主作業系統 debian 8 64

CPU : NUC i3 2.6G 雙核

記憶體:2GB

 

TCP引數預設是ACK Delay,帶包頭200位元組負載,不帶crc checksum, 無丟包,無硬體延遲情況。

 

測試方案一 (單核雙向負載傳輸測試)

在同一個CPU核上建立一個Server,一個Client,使用ACK Delay模式,TCP雙向收發,以太層使用異數OS軟體交換機本地核定向轉發。

 

客戶端服務端總計IOPS, recv 7.2M, send 7.2M,軟體交換機包交換能力20Mpps.

 

測試方案二 (單核單向負載傳輸測試)

在同一個CPU核上建立一個Server,一個Client,使用ACK No Delay

模式,TCP單向收發,以太層使用異數OS軟體交換機本地核定向轉發。

 

 

客戶端服務端總計IOPS, recv 5.1M, send 5.1M, 由於TCP ACK NoDelay的原因,軟體交換機包交換能力28.5Mpps.

 

測試方案三 (多核雙向負載傳輸測試)

 

雙核CPUCPU1僅建立ServerCPU3上建立兩個Client, TCP雙向收發,ACK Delay模式,以太層使用異數OS軟體交換機定向跨核轉發。

 

兩客戶端以及服務端IOPS總計recv 4.8M , send 4.8M ,軟體交換機包交換能力估算為

14Mpps,該模式下由於跨核軟體交換機轉發miss的情況較大,佔用大概50%CPU負載,因此分載方案失效,反而比單核集中負載情況下效能更低。

 

測試方案四 (多核單向負載傳輸測試)

雙核CPUCPU1僅建立ServerCPU3上建立兩個Client, TCP單向收發,ACK NoDelay模式,以太層使用異數OS軟體交換機定向跨核轉發。

 

兩客戶端以及服務端IOPS總結,recv 3.8M ,send 3.8M , 對於軟體交換機來講,由於TCP ACK的原因,因此總計包轉發為12Mpps,和上面多核雙向傳輸測試有同樣的問題。

 

總結

由於時間有限,簡單看了下64位元組包的IO能力(去除包頭,僅10位元組負載),效能大概提升有10%左右,由於軟體交換機在單核環境中大概有20%的負載佔用,多核更是達到50%,因此在真實硬體環境中預計每核有望達到雙向總計2000WIO能力,大概是主流作業系統IO能力的100倍左右,且主流作業系統一般IO能力不易多核擴充。