如何计算 Linux 中特定接口的吞吐量?

如何计算 Linux 中特定接口的吞吐量?

有没有办法使用命令或计算eth0Linux系统中每个接口的吞吐量(例如)?ipifconfig

我试过了bmonnload——但是使用一些基本的 Linux 命令或脚本中的基本命令是否可以获得相同的结果?

答案1

其他答案提到/proc/net/dev。下面是一个示例脚本,大致通过两次读取文件(约)间隔 1 秒,然后减去来计算“瞬时” Bps:

#!/bin/sh

[ "$#" -eq 1 ] || { printf 'usage: %s interface\n' "$0" >&2; exit 1; }

getstats () {
   grep "$1": /proc/net/dev
}

{ getstats "$1"; sleep 1; getstats "$1"; } \
| awk '{rcv=$2-rcv; trnsmt=$10-trnsmt} END {print rcv" "trnsmt}'

使用示例(假设脚本保存为./showband):

$ ./showband eth0   # the result appears after about 1 second
1272439 535768
$

数字是incoming_bytes_per_second outgoing_bytes_per_second

在 Debian 9 上测试。

答案2

您可以使用以下内容/proc/net/dev

  • 每个接口一行
  • 第一行是标题,解释了列的含义

答案3

为什么不使用iftop

sudo yum install iftop
sudo iftop -i eth0

相关内容