Linux

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

  • August 2, 2021

我想分析我的 Debian 9 伺服器的網路工作負載,以檢測一些可能的網路過載。

我需要分析的主要指標是:

  • CPS(每秒連接數)
  • 吞吐量

有沒有辦法從 Linux 中獲取這些指標?

我認為可以通過 conntrackNEW連接事件以某種方式獲得 CPS 指標,但不確定這是否是最合適的方法。

很抱歉,如果很明顯。

PS這個伺服器不僅處理本地流量,它還轉發大量流量。

我認為基於本機 Linux API 來描述這些指標的來源就足夠了。


吞吐量

順便說一句,吞吐量指標通常是與測試對象(您正在談論的 OS Linux)相關的***外部指標。***即粗略地說,我們有兩個主機(例如客戶端和伺服器)和它們之間的測試對象。我們吹散客戶端和伺服器之間的網路流量並記錄測試對象的(邊界)吞吐量(例如使用iperf)。

但是在 OS 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

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 相同的數據。

新添加的 conntrack 條目數,之前沒有預料到。

在 Linux 連接跟踪中:

NEW——意味著數據包已經開始了一個新的連接,或者與一個在兩個方向上都沒有看到數據包的連接相關聯,並且

所以似乎你想計算delta newper second

閱讀更多:

引用自:https://serverfault.com/questions/1070585