![如何测量一段时间内的最大吞吐量?](https://linux22.com/image/624897/%E5%A6%82%E4%BD%95%E6%B5%8B%E9%87%8F%E4%B8%80%E6%AE%B5%E6%97%B6%E9%97%B4%E5%86%85%E7%9A%84%E6%9C%80%E5%A4%A7%E5%90%9E%E5%90%90%E9%87%8F%EF%BC%9F.png)
我尝试找出我的本地机器上可以实现的最大上行和下行 DSL 吞吐量。
我尝试过iptraf
:
在我的服务器上$IP
我开始:
iptraf -s
在我的本地机器上:
iperf -c $IP
将输出
------------------------------------------------------------
Client connecting to $IP, TCP port 5001
TCP window size: 21.8 KByte (default)
------------------------------------------------------------
[ 3] local 10.116.135.6 port 50423 connected with $IP port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.3 sec 8.00 MBytes 6.51 Mbits/sec
如果我循环启动它:
while true;do iperf -c $IP |tail -n 1; done
这将创建输出:
[ 3] 0.0-11.6 sec 7.50 MBytes 5.45 Mbits/sec
[ 3] 0.0-10.3 sec 8.25 MBytes 6.75 Mbits/sec
[ 3] 0.0-10.2 sec 7.88 MBytes 6.45 Mbits/sec
[ 3] 0.0-10.2 sec 8.25 MBytes 6.81 Mbits/sec
...
要测量每秒超过 10 分钟的时间,您还可以:
iperf -c $IP -i 1 -t 600
这将仅显示 10 分钟内的最大带宽:
I=600;
iperf -c $IP -i 1 -t $I | awk -F ' +' '{print $5}'|sort|tail -n 1
但是我如何才能分别计算最大下载量和上传量呢?
答案1
使用 vnstat
vnstat -i eth0 -l
Monitoring eth0... (press CTRL-C to stop)
rx: 704 kbit/s 104 p/s tx: 32 kbit/s 63 p/s
rx: 588 kbit/s 97 p/s tx: 32 kbit/s 59 p/s
rx: 2.56 Mbit/s 395 p/s tx: 96 kbit/s 211 p/s^C
eth0 / traffic statistics
rx | tx
--------------------------------------+------------------
bytes 5.46 MiB | 233 KiB
--------------------------------------+------------------
max 3.51 Mbit/s | 140 kbit/s
average 1.40 Mbit/s | 58.25 kbit/s
min 0 kbit/s | 4 kbit/s
--------------------------------------+------------------
packets 6853 | 3910
--------------------------------------+------------------
max 514 p/s | 315 p/s
average 214 p/s | 122 p/s
min 1 p/s | 1 p/s
--------------------------------------+------------------
time 32 seconds
编辑:阅读手册并使用适合自己的选项,它相当广泛。
编辑:如何在服务器/客户端上为 RX/TX 生成原始流量。
在服务器上:1)开始监听随机端口“2899”:
root@ub1:~# netcat -v -v -l -n -p 2899 >/dev/null &
3)生成从服务器到客户端的2分钟原始流量:
timeout -sHUP 2m yes|nc -v -v -n 192.168.1.2 3755 >/dev/null
客户端:2)开始监听随机端口‘3755’:
root@ub2:~# netcat -v -v -l -n -p 3755 >/dev/null &
4)生成从客户端到服务器的原始流量:
timeout -sHUP 2m yes|nc -v -v -n 192.168.1.1 2899 >/dev/null
在生成流量时在该接口上启动 vnstat 以查看最大值/最小值/平均值。