我想分析我的 Debian 9 服务器的网络工作负载,以检测一些可能的网络过载。
我需要分析的主要指标是:
- CPS(每秒连接数)
- 吞吐量
有没有办法从 Linux 中获取这些指标?
我认为可以通过 conntrackNEW
连接事件以某种方式获得 CPS 指标,但不确定这是否是最合适的方法。
很抱歉,如果很明显。
PS这个服务器不仅处理本地流量,它还转发大量流量。
我想分析我的 Debian 9 服务器的网络工作负载,以检测一些可能的网络过载。
我需要分析的主要指标是:
有没有办法从 Linux 中获取这些指标?
我认为可以通过 conntrackNEW
连接事件以某种方式获得 CPS 指标,但不确定这是否是最合适的方法。
很抱歉,如果很明显。
PS这个服务器不仅处理本地流量,它还转发大量流量。
我认为基于本机 Linux API 来描述这些指标的来源就足够了。
吞吐量
顺便说一句,吞吐量指标通常是与测试对象(您正在谈论的 OS Linux)相关的外部指标。即粗略地说,我们有两个主机(例如客户端和服务器)和它们之间的测试对象。我们吹散客户端和服务器之间的网络流量并记录测试对象的(边界)吞吐量(例如使用iperf)。
但是在 OS Linux 中,我们可以测量吞吐量的一种简单方法是仅针对每个接口。
所以你可以观察
/proc/net/dev
并计算每秒字节的增量:CPS
CPS 指标也是如此。基本上它是一种外部测量。但是在您的 Linux 中,您可以尝试根据以下公式计算它
/proc/net/stat/ip_conntrack
:来自
lnstat(8)
男人:...
在 Linux 连接跟踪中:
所以似乎你想计算delta
new
per second。阅读更多:
sysstat 附带的 sar 命令将同时执行这两种操作。
监控每秒连接数 sar -n TCP 1
active/s 是出站 TCP 连接 Passive/s 是入站 TCP 连接
对于 UDP sar -n UDP 1
查看网络吞吐量 sar -n DEV(可选添加 1 以监控每秒电流)