這近的需求是要查看linux裡面網路的使用量,以前可以用ifconfig看即時的上下傳再除頻寬,現在沒有這個指令。
於是參考[1][2]安裝幾個程式來用
sar
安裝
# yum install sysstat -y
執行如下命令,使用sar每1秒統計一次網路介面的活動狀況,連續統計5次。
14時57分42秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
14時57分42秒 ens192 66.00 22.00 4.35 7.35 0.00 0.00 0.00
14時57分42秒 br-9a04a3103406 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時57分42秒 br-bb96b8cee087 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時57分42秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時57分42秒 br-ff4045892b6c 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時57分42秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
<中間省略3筆>
14時57分45秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
14時57分46秒 ens192 70.00 28.00 5.24 6.80 0.00 0.00 0.00
14時57分46秒 br-9a04a3103406 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時57分46秒 br-bb96b8cee087 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時57分46秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時57分46秒 br-ff4045892b6c 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時57分46秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
平均時間: ens192 69.40 31.80 6.04 7.76 0.00 0.00 0.00 <== 查看這個介面統計資料
平均時間: br-9a04a3103406 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: br-bb96b8cee087 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: br-ff4045892b6c 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
這個程式功能很強大,可以查看諸如中斷、cpu、記憶體、各種網路流量,但是顯示太多了,眼花僚亂。
iftop
安裝
# yum install iftop
執行
# iftop -i ens192 -P
# iftop -i ens192 -t
-t 只會顯示文字,-P會顯示介面全部的流量,-p會顯示埠號。
# Host name (port/service if enabled) last 2s last 10s last 40s cumulative
--------------------------------------------------------------------------------------------
1 n.sfs.tw => 33.1Kb 18.2Kb 18.2Kb 13.7KB
211.75.194.243 <= 7.14Kb 4.04Kb 4.04Kb 3.03KB
<中間省略>
10 n.sfs.tw. => 0b 923b 923b 692B
2001:500:f0::63 <= 0b 1.16Kb 1.16Kb 888B
--------------------------------------------------------------------------------------------
Total send rate: 57.6Kb 38.7Kb 38.7Kb
Total receive rate: 34.0Kb 28.7Kb 28.7Kb
Total send and receive rate: 91.6Kb 67.4Kb 67.4Kb
--------------------------------------------------------------------------------------------
Peak rate (sent/received/total): 57.6Kb 49.5Kb 101Kb
Cumulative (sent/received/total): 29.0KB 21.5KB 50.6KB
會顯示每一個連線的流量,然後會做summary,有點像 ss ,但ss不會顯示流量。
nethogs
安裝
# yum install nethogs -y
執行
# nethogs ens192 -v 0
-v 是用KB來顯示流量
主要是by pid來看即時流量,因為數據會一直跳,不太好看。
vnstat
安裝
# yum install vnstat
執行
# vnstat -i ens192 -l
-l 會持續監聽
rx: 61 kbit/s 92 p/s tx: 841 kbit/s 52 p/s
^C <按ctrl-c中斷>
rx | tx
--------------------------------------+------------------
bytes 890 KiB | 2.59 MiB
--------------------------------------+------------------
max 1.41 Mbit/s | 849 kbit/s
average 222.54 kbit/s | 663.75 kbit/s
min 24 kbit/s | 11 kbit/s
--------------------------------------+------------------
packets 3132 | 1496
--------------------------------------+------------------
max 200 p/s | 84 p/s
average 97 p/s | 46 p/s
min 48 p/s | 6 p/s
--------------------------------------+------------------
time 32 seconds
# vnstat -i ens192 -tr 60
用-tr 指定60秒取樣
3569 packets sampled in 60 seconds
Traffic average for ens192
rx 28.40 kbit/s 49 packets/s
tx 17.65 kbit/s 9 packets/s
結論
要看每個連線流量,推薦 iftop
sar 可以看各種流量、cpu或其它資訊,有點複雜。
要看每個pid的流量,用 nethogs
要看統計的流量,用 vnstat
參考資料
[1] https://blog.csdn.net/sumengnan/article/details/108142494
[2] https://www.alibabacloud.com/help/tc/ecs/support/query-and-case-analysis-of-linux-network-traffic-load
[3] https://www.globo.tech/learning-center/install-sar-centos/