怎么評估系統(tǒng)的網(wǎng)絡(luò)性能-記錄

性能指標

  • 帶寬:表示鏈路的最大專屬路率远豺,單位b/s(比特/秒)奈偏。在為服務(wù)器選購網(wǎng)卡時,帶寬就是最核心的參考指標躯护,常用的帶寬1000M惊来、10G、40G棺滞、100G
  • 吞吐量:表示沒有丟表時的最大數(shù)據(jù)傳輸速率裁蚁,單位通常為b/s(比特/秒)或者B/s(字節(jié)/秒)。吞吐量受帶寬限制继准,吞吐量/帶寬 就是該網(wǎng)絡(luò)鏈路的使用率
  • 延遲:表示從網(wǎng)絡(luò)請求發(fā)出后枉证,一只到收到遠端響應(yīng),所需要的時間延遲移必。這個指標在不同場景中可能會有不同含義室谚。它可以表示建立連接需要的時間(比如TCP握手延遲),或者一個數(shù)據(jù)包往返所需時間(比如RTT)
  • PPS:是 packet per second(包/秒)的縮寫崔泵,表示以網(wǎng)絡(luò)包單位的傳輸速率秒赤。PPS通常用來評估網(wǎng)絡(luò)的轉(zhuǎn)發(fā)能力,而基于Linux服務(wù)器的轉(zhuǎn)發(fā)憎瘸,很容器受到網(wǎng)絡(luò)包大小的影響(交換機通常不會收到太大影響入篮,即交換機可以線性轉(zhuǎn)發(fā))。

帶寬跟物理網(wǎng)卡配置是直接關(guān)聯(lián)的幌甘。網(wǎng)卡確定后潮售,帶寬也就確定了,(實際帶寬受限于整個網(wǎng)絡(luò)鏈路中最小的那個模塊)

網(wǎng)絡(luò)基準測試

測試之前含潘,要搞清楚你需要評估的網(wǎng)絡(luò)性能饲做,數(shù)據(jù)協(xié)議棧的那一層线婚,就是你的應(yīng)用程序基于協(xié)議棧的那一層遏弱?

  • 基于HTTP或者HTTPS的Web應(yīng)用暢敘,數(shù)據(jù)應(yīng)用層塞弊。需要我們測試HTTP漱逸,HTTPS的性能
  • 游戲服務(wù)器來說泪姨,為了支持更大的同時在線人數(shù),通常會基于TCP或者UDP饰抒,與客戶端進行交互肮砾,這時就需要我們測試TCP/UDP的性能。
  • 還有一些場景袋坑,是把Linux作為一個軟交換機或者路由器來用的仗处,這種情況下,更關(guān)注網(wǎng)絡(luò)包處理能力(即PPS)枣宫,重點關(guān)注網(wǎng)絡(luò)層的轉(zhuǎn)發(fā)性能

各協(xié)議層的性能測試

轉(zhuǎn)發(fā)性能

測試工具:pktgen婆誓,Linux內(nèi)核自帶的高性能網(wǎng)絡(luò)測試工具

  1. 加載pktgen模塊
$ modprobe pktgen
$ ls /proc/net/pktgen/
ens33  kpktgend_0  pgctrl

$  ls /proc/net/pktgen/
ens33  kpktgend_0  pgctrl

pkten 在每個CPU上啟動一個內(nèi)核線程,并可以通過/proc/net/pktgen 下面的同名文件跟這些線程交互也颤;pgctrl則主要控制測試開啟和停止

如果 modprobe 命令執(zhí)行失敗洋幻,說明你的內(nèi)核沒有配置 CONFIG_NET_PKTGEN 選項。這就需要你配置 pktgen 內(nèi)核模塊(即 CONFIG_NET_PKTGEN=m)后翅娶,重新編譯內(nèi)核文留,才可以使用。

  1. 創(chuàng)建測試腳本

目標主機(ip:192.168.0.30 mac:11:11:11:11:11:11) < 發(fā)包主機(ens33)

# 定義一個工具函數(shù)竭沫,方便后面配置各種測試選項
function pgset() {
    local result
    echo $1 > $PGDEV

    result=`cat $PGDEV | fgrep "Result: OK:"`
    if [ "$result" = "" ]; then
         cat $PGDEV | fgrep Result:
    fi
}

# 為0號線程綁定ens33網(wǎng)卡
PGDEV=/proc/net/pktgen/kpktgend_0
pgset "rem_device_all"   # 清空網(wǎng)卡綁定
pgset "add_device ens33"  # 添加ens33網(wǎng)卡

# 配置ens33網(wǎng)卡的測試選項
PGDEV=/proc/net/pktgen/ens33
pgset "count 1000000"    # 總發(fā)包數(shù)量
pgset "delay 5000"       # 不同包之間的發(fā)送延遲(單位納秒)
pgset "clone_skb 0"      # SKB包復(fù)制
pgset "pkt_size 64"      # 網(wǎng)絡(luò)包大小
pgset "dst 192.168.0.30" # 目的IP
pgset "dst_mac 11:11:11:11:11:11"  # 目的MAC

# 啟動測試
PGDEV=/proc/net/pktgen/pgctrl
pgset "start"
  1. 啟動測試腳本查看結(jié)果
sh psget.sh
[root@localhost ~]# cat /proc/net/pktgen/ens33
Params: count 1000000  min_pkt_size: 64  max_pkt_size: 64
     frags: 0  delay: 5000  clone_skb: 0  ifname: ens33
     flows: 0 flowlen: 0
     queue_map_min: 0  queue_map_max: 0
...
Current:
     pkts-sofar: 1000000  errors: 0
     started: 55473279860us  stopped: 55485749747us idle: 13143us
     seq_num: 1000001  cur_dst_mac_offset: 0  cur_src_mac_offset: 0
...
Result: OK: 12469886(c12456743+d13143) usec, 1000000 (64byte,0frags)
  80193pps 41Mb/sec (41058816bps) errors: 0

報告分為三個部分

  • 第一部分:params 是測試選項燥翅,發(fā)送100萬個包,每個包64B大小输吏,最大包64B大小
  • 第二部分:current是測試進度权旷,其中packts so far 表示已經(jīng)發(fā)送了100萬個包,表示測試完成
  • 第三部分:result是測試結(jié)果贯溅,包含測試所用時間拄氯,網(wǎng)絡(luò)包數(shù)量和分片,PPS它浅,吞吐量译柏,錯誤數(shù)信息

上面結(jié)果可以看出 PPS為8萬,吞吐量為41Mb/s姐霍,沒法發(fā)生錯誤鄙麦,為了判斷8萬PPS好不好?

可以用千兆交換機PPS做對比镊折,交換機可以達到線速度(滿負責(zé)胯府,無差錯轉(zhuǎn)發(fā))它的PPS就是1000Mbit / 以太網(wǎng)幀大小,即 1000Mbps/ ((64+20)*8bit)=1.5mpps (其中20B為以太網(wǎng)幀前導(dǎo)和幀間距離大小)

1.5mpps * 1024 * 1025 = 1572864pps 恨胚,顯然是比8萬pps大多了骂因,

TCP/UDP性能

測試工具:iperf,netperf

測試TCP和UDP的吞吐量赃泡,他們以客戶端和服務(wù)器通信往事寒波,測試一段時間內(nèi)的平均吞吐量

服務(wù)器主機:192.168.65.2
客戶端主機:192.168.65.3

  1. 安裝
yum -y install iperf3
  1. 服務(wù)端開啟iperf
# -s表示啟動服務(wù)端乘盼,-i表示匯報間隔,-p表示監(jiān)聽端口

iperf3 -s -i 1 -p 10000
  1. 客戶端開啟測試
# -c表示啟動客戶端俄烁,192.168.0.30為目標服務(wù)器的IP
# -b表示目標帶寬(單位是bits/s)# -t表示測試時間
# -P表示并發(fā)數(shù)绸栅,-p表示目標服務(wù)器監(jiān)聽端口

iperf3 -c 192.168.65.2 -b 2M -t 15 -P 2 -p 10000
  1. 測試結(jié)果
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-15.00  sec  1.23 MBytes   688 Kbits/sec  231             sender
[  4]   0.00-15.00  sec   994 KBytes   543 Kbits/sec                  receiver
[  6]   0.00-15.00  sec  1.35 MBytes   754 Kbits/sec  208             sender
[  6]   0.00-15.00  sec  1.08 MBytes   602 Kbits/sec                  receiver
[SUM]   0.00-15.00  sec  2.58 MBytes  1.44 Mbits/sec  439             sender
[SUM]   0.00-15.00  sec  2.05 MBytes  1.14 Mbits/sec                  receiver

iperf Done.

# 從測試中可以看到,客戶端帶寬大概1M左右

HTTP性能

測試工具有:ab页屠,wrk粹胯,TCPCopy,Jmeter 辰企,LoadRunner

  • ab 是 Apache 自帶的 HTTP 壓測工具矛双,主要測試 HTTP 服務(wù)的每秒請求數(shù)、請求延遲蟆豫、吞吐量以及請求延遲的分布情況等

  • wrk议忽、TCPCopy、Jmeter 十减、LoadRunner:可以模擬用戶請求負責(zé)栈幸,測試應(yīng)用程序的實際性能

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市帮辟,隨后出現(xiàn)的幾起案子速址,更是在濱河造成了極大的恐慌,老刑警劉巖由驹,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芍锚,死亡現(xiàn)場離奇詭異,居然都是意外死亡蔓榄,警方通過查閱死者的電腦和手機并炮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甥郑,“玉大人逃魄,你說我怎么就攤上這事±浇粒” “怎么了伍俘?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長勉躺。 經(jīng)常有香客問我癌瘾,道長,這世上最難降的妖魔是什么饵溅? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任妨退,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘碧注。我一直安慰自己,他們只是感情好糖赔,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布萍丐。 她就那樣靜靜地躺著,像睡著了一般放典。 火紅的嫁衣襯著肌膚如雪逝变。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天奋构,我揣著相機與錄音壳影,去河邊找鬼。 笑死弥臼,一個胖子當著我的面吹牛宴咧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播径缅,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼掺栅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了纳猪?” 一聲冷哼從身側(cè)響起氧卧,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎氏堤,沒想到半個月后沙绝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡鼠锈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年闪檬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片购笆。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡谬以,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出由桌,到底是詐尸還是另有隱情为黎,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布行您,位于F島的核電站铭乾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏娃循。R本人自食惡果不足惜炕檩,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧笛质,春花似錦泉沾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至敲霍,卻和暖如春俊马,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肩杈。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工柴我, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扩然。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓艘儒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親夫偶。 傳聞我的和親對象是個殘疾皇子彤悔,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容