
我想分析我的 Debian 9 伺服器的網路工作負載以偵測一些可能的網路過載。
我需要分析的主要指標是:
- CPS(每秒連線數)
- 吞吐量
有沒有辦法從 Linux 內部取得這些指標?
我認為 CPS 指標可以透過 conntrackNEW
連接事件以某種方式獲得,但不確定這是否是最正確的方法。
抱歉,如果很明顯的話。
PS 此伺服器不僅處理本地流量,還會轉送大量流量。
答案1
我認為描述這些指標基於原生 Linux API 的起源就足夠了。
吞吐量
順便說一句,吞吐量度量一般是一些東西,那就是外部的與測試對象(您正在談論的作業系統Linux)相關。粗略地說,我們有兩個主機(例如客戶端和伺服器)以及它們之間的測試對象。我們吹掃客戶端和伺服器之間的網路流量並記錄測試物件的(邊界)吞吐量(例如使用iperf)。
但在 Linux 作業系統內部,我們可以透過一個簡單的方法來測量每個介面的吞吐量。
所以你可以只看/proc/net/dev
並計算每秒位元組數增量:
sh-tst# cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 87016202 715723 0 0 0 0 0 0 87016202 715723 0 0 0 0 0 0
eth3: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth2: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth1: 246415305 2899662 0 132906 0 0 0 230 5466117 19016 0 0 0 0 0 0
eth0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
消費者保護計劃
CPS 指標也是如此。基本上它是外部測量。但在 Linux 中,您可以嘗試根據以下內容計算它/proc/net/stat/ip_conntrack
:
sh-tst# cat /proc/net/stat/ip_conntrack
entries searched found new invalid ignore delete delete_list insert insert_failed drop early_drop icmp_error expect_new expect_create expect_delete search_restart
000000f8 00001742 0003142f 0001e85a 00000079 00021333 0001e6cf 00003a3d 00003bc5 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000000f8 00002389 0005f1a0 0003b6f3 00000085 0004286f 0003b59e 00003cea 00003e3f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000000f8 000002c0 00037a77 00000714 00000000 000382cb 00000825 00000724 00000616 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000000f8 00000225 00026cf9 00000271 00000000 00026e48 00000348 000002bd 000001e6 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
從lnstat(8)
男人:
/proc/net/stat/ip_conntrack、/proc/net/stat/nf_conntrack Conntrack 相關計數器。 ip_conntrack 僅用於向後相容較舊的使用者空間,並顯示與 nf_conntrack 相同的資料。
…
new 新增了先前未預期的 conntrack 條目數。
在 Linux 連線追蹤中:
NEW——意味著資料包已經啟動了一個新的連接,或者以其他方式與在兩個方向上都沒有看到資料包的連接相關聯,並且
所以看來你想計算new
每秒增量。
閱讀更多:
答案2
sysstat 隨附的 sar 指令可以同時執行這兩項操作。
監視每秒連線數 sar -n TCP 1
active/s 是出站 TCP 連接 Passive/s 是入站 TCP 連接
對於 UDP sar -n UDP 1
查看網路吞吐量 sar -n DEV (可以選擇添加 1 來監控每秒的電流)