有沒有辦法在 Linux 中取得 CPS 和 Thruoghput 指標?

有沒有辦法在 Linux 中取得 CPS 和 Thruoghput 指標?

我想分析我的 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 來監控每秒的電流)

相關內容