Linux性能監控(網絡性能)
網絡的監測是所有 Linux 子系統裡面最複雜的,有太多的因素在裡面,比如:延遲、阻塞、沖突、丢包等,更糟的是與 Linux 主機相連的路由器、交換機、無線信号都會影響到整體網絡并且很難判斷是因為 Linux 網絡子系統的問題還是别的裝置的問題,增加了監測和判斷的複雜度。現在我們使用的所有網卡都稱為自适應網卡,意思是說能根據網絡上的不同網絡裝置導緻的不同網絡速度和工作模式進行自動調整。
iperf3指令
安裝
文法
參數
示例
netstat指令
iftop指令
快捷鍵
nload指令
nethogs指令
iperf3是一個免費的開源,跨平台指令行程式,用于執行實時網絡吞吐量測量。 它是測試IP網絡中可實作的最大帶寬的強大工具之一(支援IPv4和IPv6 )。
iperf3是一個網絡性能測試工具。Iperf可以測試TCP和UDP帶寬品質。iperf3可以測量最大TCP帶寬,具有多種參數和UDP特性。Iperf可以報告帶寬,延遲抖動和資料包丢失。利用iperf3這一特性,可以用來測試一些網絡裝置如路由器,防火牆,交換機等的性能。
要求:兩台聯網的計算機都安裝了iperf3 。
CentOS, RedHat or Fedora,運作下列指令來安裝
yum install iperf3
Debian, Ubuntu or 它的衍生版, 運作下列指令來安裝
apt install iperf3
iperf [-s|-c host] [options]
iperf [-h|–help] [-v|–version]
預設情況用戶端使用TCP協定
-s:指明是伺服器端
-c: 指明是用戶端(-c 後面跟伺服器端的ip)
-u:指定是udp封包
-b:指定發送帶寬大小
-p:指定端口
-h:檢視所有參數含義
注意:
測試之前要配置防火牆,不然會報以下錯誤
在伺服器端放行用戶端的ip
伺服器端:
iperf3 -s -p 9011
用戶端:
iperf3 -u -c 192.168.10.10 -b 100M -p 9011
Netstat 是一款指令行工具,可用于列出系統上所有的網絡套接字連接配接情況,包括 tcp, udp 以及 unix 套接字,另外它還能列出處于監聽狀态(即等待接入請求)的套接字。如果你想确認系統上的 Web 服務有沒有起來,你可以檢視80端口有沒有打開。
yum provides */netstat 指令就可以看到提供指令的工具包
yum install net-tools
apt install net-tools
netstat [-acCeFghilMnNoprstuvVwx][-A<網絡類型>][–ip]
-a或–all 顯示所有連線中的Socket。
-A<網絡類型>或–<網絡類型> 列出該網絡類型連線中的相關位址。
-c或–continuous 持續列出網絡狀态。
-C或–cache 顯示路由器配置的快取資訊。
-e或–extend 顯示網絡其他相關資訊。
-F或–fib 顯示FIB。
-g或–groups 顯示多重廣播功能群組組員名單。
-h或–help 線上幫助。
-i或–interfaces 顯示網絡界面資訊表單。
-l或–listening 顯示監控中的伺服器的Socket。
-M或–masquerade 顯示僞裝的網絡連線。
-n或–numeric 直接使用IP位址,而不通過域名伺服器。
-N或–netlink或–symbolic 顯示網絡硬體外圍裝置的符号連接配接名稱。
-o或–timers 顯示計時器。
-p或–programs 顯示正在使用Socket的程式識别碼和程式名稱。
-r或–route 顯示Routing Table。
-s或–statistice 顯示網絡工作資訊統計表。
-t或–tcp 顯示TCP傳輸協定的連線狀況。
-u或–udp 顯示UDP傳輸協定的連線狀況。
-v或–verbose 顯示指令執行過程。
-V或–version 顯示版本資訊。
-w或–raw 顯示RAW傳輸協定的連線狀況。
-x或–unix 此參數的效果和指定"-A unix"參數相同。
–ip或–inet 此參數的效果和指定"-A inet"參數相同。
1. 列出所有連接配接
2. 隻列出 TCP 或 UDP 協定的連接配接
3. 擷取程序名、程序号以及使用者 ID
4. 檢視監聽狀态的連接配接
輸出資訊解釋
Proto Recv-Q Send-Q Local Address Foreign Address State
Proto:網絡連接配接的協定,一般就是 TCP 協定或者 UDP 協定。
Recv-Q:表示接收到的資料,已經在本地的緩沖中,但是還沒有被程序取走。
Send-Q:表示從本機發送,對方還沒有收到的資料,依然在本地的緩沖中,不具備 ACK 标志的資料包。
Local Address:本機的 IP 位址和端口号。
ForeignAddress:遠端主機的 IP 位址和端口号。
State:狀态。常見的狀态主要有以下幾種。
-LISTEN:監聽狀态,隻有 TCP 協定需要監聽,而 UDP 協定不需要監聽。
-ESTABLISHED:已經建立連接配接的狀态。如果使用"-I"選項,則看不到已經建立連接配接的狀态。
-SYN_SENT:SYN 發起包,就是主動發起連接配接的資料包。
-SYN_RECV:接收到主動連接配接的資料包。
-FIN_WAIT1:正在中斷的連接配接。
-FIN_WAIT2:已經中斷的連接配接,但是正在等待對方主機進行确認。
-TIME_WAIT:連接配接已經中斷,但是套接字依然在網絡中等待結束。
-CLOSED:套接字沒有被使用。
在這些狀态中,我們最常用的就是 LISTEN 和 ESTABLISHED 狀态,一種代表正在監聽,另一種代表已經連接配接。
5. 列印統計資料
6. 顯示核心路由資訊
7. 列印網絡接口
iftop是類似于top的實時流量監控工具。
yum install iftop
apt install iftop
-i 設定監測的網卡,如:# iftop -i eth1
-B 以bytes為機關顯示流量(預設是bits),如:# iftop -B
-n 使host資訊預設直接都顯示IP,如:# iftop -n
-N 使端口資訊預設直接都顯示端口号,如: # iftop -N
-F 顯示特定網段的進出流量,如# iftop -F 121.11.1.0/24或# iftop -F 121.11.1.0/255.255.255.0
-h(display this message),幫助,顯示參數資訊
-p 使用這個參數後,中間的清單顯示的本地主機資訊,出現了本機以外的IP資訊;
-b 使流量圖形條預設就顯示;
-P 使host資訊及端口資訊預設就都顯示;
按h切換是否顯示幫助;
按n切換顯示本機的IP或主機名;
按N切換顯示端口号或端口服務名稱;
按D切換是否顯示遠端目标主機的端口資訊;
按P切換暫停/繼續顯示;
按b切換是否顯示平均流量圖形條;
按B切換計算2秒或10秒或40秒内的平均流量;
按l打開螢幕過濾功能,輸入要過濾的字元,比如ip,按回車後,螢幕就隻顯示這個IP相關的流量資訊;
按1或2或3可以根據右側顯示的三列流量資料進行排序;
按q退出監控
iftop界面說明:
界面上面顯示的是類似刻度尺的刻度範圍,為顯示流量圖形的長條作标尺用的。
中間的<= =>這兩個左右箭頭,表示的是流量的方向。
TX:發送流量
RX:接收流量
TOTAL:總流量
Cumm:運作iftop到目前時間的總流量
peak:流量峰值
rates:分别表示過去 2s 10s 40s 的平均流量
nload是另一種簡單易用的指令行工具,用于實時監控網絡流量和帶寬使用情況。 它使用圖表來幫助您監控入站和出站流量。 此外,它還顯示諸如傳輸資料總量和最小/最大網絡使用量等資訊。
yum install nload
apt install nload
nload [options] [devices]
-i:進入網卡的流量圖的顯示比例最大值設定,預設10240 kBit/s.
-m:不顯示流量圖,隻顯示統計資料。
-o:出去網卡的流量圖的顯示比例最大值設定,預設10240 kBit/s.
-t:顯示資料的重新整理時間間隔,機關是毫秒,預設500。
-u:設定右邊Curr、Avg、Min、Max的資料機關,預設是自動變的.注意大小寫機關不同!
h|b|k|m|g h: auto, b: Bit/s, k: kBit/s, m: MBit/s etc.
H|B|K|M|G H: auto, B: Byte/s, K: kByte/s, M: MByte/s etc.
-U:設定右邊Ttl的資料機關,預設是自動變的.注意大小寫機關不同(與-u相同)
按Tab鍵切換網卡
nload 預設分為上下兩塊:
上半部分是:Incoming也就是進入網卡的流量,
下半部分是:Outgoing,也就是從這塊網卡出去的流量,
每部分都有目前流量(Curr),
平均流量(Avg),
最小流量(Min),
最大流量(Max),
總和流量(Ttl)這幾個部分,看起來還是蠻直覺的。
NetHogs是一種類似于頂級的基于文本的工具,用于監控Linux系統上運作的每個程序或應用程式的實時網絡流量帶寬使用情況。 它僅提供基于每個程序的網絡帶寬使用情況的實時統計資訊
yum install nethogs
apt install nethogs
nethogs [-h] [-V] [-d] [-v] [-t] [-c] [-p] [-s] [device(s)]
-V : 列印版本.
-d : 重新整理頻率. 預設 1s.
-t : 跟蹤模式.
-b : bughunt模式,隐式tracemode.
-p : 嗅探在混合模式下(不推薦).
device : 指定監控網卡裝置.
m : 修改機關
r : 按流量排序
s : 按發送流量排序
q : 退出指令提示符
監控多塊網卡