Linux 網(wǎng)絡(luò)性能指標(biāo) - 概念篇

性能指標(biāo)

常用性能指標(biāo)

  • 帶寬,表示鏈路的最大傳輸速率
  • 吞吐量淹朋,表示單位時間內(nèi)成功傳輸?shù)臄?shù)據(jù)量
  • 延時笙各,表示從網(wǎng)絡(luò)請求發(fā)出后,一直收到遠(yuǎn)端相應(yīng)础芍,所需要的時間延遲杈抢。
  • PPS,是 Packet Per Second(包 / 秒)的縮寫仑性,表示以網(wǎng)絡(luò)包為單位的傳輸速率惶楼。

其它性能指標(biāo)

網(wǎng)絡(luò)的可用性(網(wǎng)絡(luò)能否正常通信)、并發(fā)連接數(shù)(TCP 連接數(shù)量)诊杆、丟包率(丟包百分比)歼捐、重傳率(重新傳輸?shù)木W(wǎng)絡(luò)包比例)等也是常用的性能指標(biāo)。

網(wǎng)絡(luò)配置

# ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 9.134.167.17  netmask 255.255.252.0  broadcast 9.134.167.255
        inet6 fe80::5054:ff:fed2:861a  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:d2:86:1a  txqueuelen 1000  (Ethernet)
        RX packets 2208265079  bytes 2250150418319 (2.0 TiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1194884309  bytes 481836721760 (448.7 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# ip -s addr show dev eth1
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 52:54:00:d2:86:1a brd ff:ff:ff:ff:ff:ff
    inet 9.134.167.17/22 brd 9.134.167.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fed2:861a/64 scope link
       valid_lft forever preferred_lft forever
    RX:     bytes    packets errors dropped  missed   mcast
    2250150441296 2208265311      0       0       0       0
    TX:     bytes    packets errors dropped carrier collsns
     481836762646 1194884519      0       0       0       0

幾個需要注意的指標(biāo):

  1. 網(wǎng)絡(luò)接口的狀態(tài)標(biāo)志晨汹,ifconfig 輸出中的 RUNNING 豹储,或 ip 輸出中的 LOWER_UP ,都表示物理網(wǎng)絡(luò)是連通的淘这。
  2. MTU 的大小剥扣。
  3. 網(wǎng)絡(luò)接口的 IP巩剖,MAC 地址
  4. 網(wǎng)絡(luò)收發(fā)的字節(jié)數(shù)、包數(shù)钠怯、錯誤數(shù)以及丟包情況球及,特別是 TX 和 RX 部分的 errors、dropped呻疹、overruns吃引、carrier 以及 collisions 等指標(biāo)不為 0 時,通常表示出現(xiàn)了網(wǎng)絡(luò) I/O 問題刽锤。其中:
  • errors 表示發(fā)生錯誤的數(shù)據(jù)包數(shù)镊尺,比如校驗錯誤,幀同步錯誤等并思;
  • dropped 表示丟棄的數(shù)據(jù)包數(shù)庐氮,即數(shù)據(jù)包已經(jīng)收到了 Ring Buffer,但因為內(nèi)存不足等原因丟包宋彼;
  • overruns 表示超限數(shù)據(jù)包數(shù)弄砍,即網(wǎng)絡(luò) I/O 速度過快,導(dǎo)致 Ring Buffer 中的數(shù)據(jù)包來不及處理(隊列滿)而導(dǎo)致的丟包输涕;
  • carrier 表示發(fā)生 carrirer 錯誤的數(shù)據(jù)包數(shù)音婶,比如雙工模式不匹配、物理電纜出現(xiàn)問題等莱坎;
  • collisions 表示碰撞數(shù)據(jù)包數(shù)衣式。

套接字信息

# head -n 3 表示只顯示前面3行
# -l 表示只顯示監(jiān)聽套接字
# -n 表示顯示數(shù)字地址和端口(而不是名字)
# -p 表示顯示進(jìn)程信息
$ netstat -nlp | head -n 3
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      840/systemd-resolve

# -l 表示只顯示監(jiān)聽套接字
# -t 表示只顯示 TCP 套接字
# -n 表示顯示數(shù)字地址和端口(而不是名字)
# -p 表示顯示進(jìn)程信息
$ ss -ltnp | head -n 3
State    Recv-Q    Send-Q        Local Address:Port        Peer Address:Port
LISTEN   0         128           127.0.0.53%lo:53               0.0.0.0:*        users:(("systemd-resolve",pid=840,fd=13))
LISTEN   0         128                 0.0.0.0:22               0.0.0.0:*        users:(("sshd",pid=1459,fd=3))

其中,接收隊列(Recv-Q)和發(fā)送隊列(Send-Q)需要特別關(guān)注檐什,它們通常應(yīng)該是 0碴卧。當(dāng)你發(fā)現(xiàn)它們不是 0 時,說明有網(wǎng)絡(luò)包的堆積發(fā)生乃正。當(dāng)然還要注意住册,在不同套接字狀態(tài)下,它們的含義不同瓮具。
當(dāng)套接字處于連接狀態(tài)(Established)時荧飞,

  • Recv-Q 表示套接字緩沖還沒有被應(yīng)用程序取走的字節(jié)數(shù)(即接收隊列長度)。
  • 而 Send-Q 表示還沒有被遠(yuǎn)端主機確認(rèn)的字節(jié)數(shù)(即發(fā)送隊列長度)搭综。
    當(dāng)套接字處于監(jiān)聽狀態(tài)(Listening)時垢箕,
  • Recv-Q 表示全連接隊列的長度。
  • 而 Send-Q 表示全連接隊列的最大長度兑巾。

協(xié)議棧統(tǒng)計信息

$ netstat -s
...
Tcp:
    3244906 active connection openings
    23143 passive connection openings
    115732 failed connection attempts
    2964 connection resets received
    1 connections established
    13025010 segments received
    17606946 segments sent out
    44438 segments retransmitted
    42 bad segments received
    5315 resets sent
    InCsumErrors: 42
...

$ ss -s
Total: 186 (kernel 1446)
TCP:   4 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0

Transport Total     IP        IPv6
*    1446      -         -
RAW    2         1         1
UDP    2         2         0
TCP    4         3         1
...

網(wǎng)絡(luò)吞吐和 PPS

給 sar 增加 -n 參數(shù)就可以查看網(wǎng)絡(luò)的統(tǒng)計信息,比如網(wǎng)絡(luò)接口(DEV)忠荞、網(wǎng)絡(luò)接口錯誤(EDEV)蒋歌、TCP帅掘、UDP、ICMP 等等堂油。執(zhí)行下面的命令修档,你就可以得到網(wǎng)絡(luò)接口統(tǒng)計信息:

# 數(shù)字1表示每隔1秒輸出一組數(shù)據(jù)
$ sar -n DEV 1
Linux 4.15.0-1035 (ubuntu)   01/06/19   _x86_64_  (2 CPU)

13:21:40        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
13:21:41         eth0     18.00     20.00      5.79      4.25      0.00      0.00      0.00      0.00
13:21:41      docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
13:21:41           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
  • rxpck/s 和 txpck/s 分別是接收和發(fā)送的 PPS,單位為包 / 秒府框。
  • rxkB/s 和 txkB/s 分別是接收和發(fā)送的吞吐量吱窝,單位是 KB/ 秒。
  • rxcmp/s 和 txcmp/s 分別是接收和發(fā)送的壓縮數(shù)據(jù)包數(shù)迫靖,單位是包 / 秒院峡。
  • %ifutil 是網(wǎng)絡(luò)接口的使用率,即半雙工模式下為 (rxkB/s+txkB/s)/Bandwidth系宜,而全雙工模式下為 max(rxkB/s, txkB/s)/Bandwidth照激。

連通性和延遲

ping -c3 10.123.119.98
PING 10.123.119.98 (10.123.119.98) 56(84) bytes of data.
64 bytes from 10.123.119.98: icmp_seq=1 ttl=117 time=6.46 ms
64 bytes from 10.123.119.98: icmp_seq=2 ttl=117 time=6.53 ms
64 bytes from 10.123.119.98: icmp_seq=3 ttl=117 time=6.76 ms

--- 10.123.119.98 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 6.462/6.583/6.758/0.142 ms

ping 的輸出,可以分為兩部分盹牧。

  • 第一部分俩垃,是每個 ICMP 請求的信息,包括 ICMP 序列號(icmp_seq)汰寓、TTL(生存時間口柳,或者跳數(shù))以及往返延時。
  • 第二部分有滑,則是三次 ICMP 請求的匯總啄清。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市俺孙,隨后出現(xiàn)的幾起案子辣卒,更是在濱河造成了極大的恐慌,老刑警劉巖睛榄,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荣茫,死亡現(xiàn)場離奇詭異,居然都是意外死亡场靴,警方通過查閱死者的電腦和手機啡莉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旨剥,“玉大人咧欣,你說我怎么就攤上這事」熘模” “怎么了魄咕?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蚌父。 經(jīng)常有香客問我哮兰,道長毛萌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任喝滞,我火速辦了婚禮阁将,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘右遭。我一直安慰自己做盅,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布窘哈。 她就那樣靜靜地躺著吹榴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宵距。 梳的紋絲不亂的頭發(fā)上腊尚,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音满哪,去河邊找鬼婿斥。 笑死,一個胖子當(dāng)著我的面吹牛哨鸭,可吹牛的內(nèi)容都是我干的民宿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼像鸡,長吁一口氣:“原來是場噩夢啊……” “哼活鹰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起只估,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤志群,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蛔钙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锌云,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年吁脱,在試婚紗的時候發(fā)現(xiàn)自己被綠了桑涎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡兼贡,死狀恐怖攻冷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情遍希,我是刑警寧澤等曼,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響涉兽,放射性物質(zhì)發(fā)生泄漏招驴。R本人自食惡果不足惜篙程,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一枷畏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧虱饿,春花似錦拥诡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至爽冕,卻和暖如春朗伶,著一層夾襖步出監(jiān)牢的瞬間募疮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留陪竿,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓铣墨,卻偏偏與公主長得像弟灼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子徙缴,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

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