Network
评估网络的五个指标
- 带宽(
Bandwidth
):最大吞吐量 - 吞吐量(
Throughput
):实际吞吐量 - 延迟(
Latency
):发送方和接收方传输和解码的时间 - 抖动(
Jitter
):传输中不定期的物理链路不稳定 - 丢包率(
Error rate
):传输中错误/丢失的数据比率
Iperf
# rpm -ivh https://iperf.fr/download/fedora/iperf-2.0.1-1.2.el4.rf.x86_64.rpm
带宽
服务器端运行
Server# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.2.30 port 5001 connected with 192.168.2.20 port 38317
[ 4] 0.0-10.0 sec 664 MBytes 557 Mbits/sec
客户端运行
# iperf -c 192.168.2.30
------------------------------------------------------------
Client connecting to 192.168.2.30, TCP port 5001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.20 port 38317 connected with 192.168.2.30 port 5001
[ 3] 0.0-10.0 sec 664 MBytes 557 Mbits/sec
Server端修改有关TCP窗口内核参数
Server# echo 'net.core.wmem_max=4194304' >> /etc/sysctl.conf
Server# echo 'net.core.rmem_max=12582912' >> /etc/sysctl.conf
Server# echo 'net.ipv4.tcp_rmem = 4096 87380 4194304' >> /etc/sysctl.conf
Server# echo 'net.ipv4.tcp_wmem = 4096 87380 4194304' >> /etc/sysctl.conf
Server# sysctl -p
服务器端
[root@Da ~]# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.2.30 port 5001 connected with 192.168.2.20 port 38320
[ 5] 0.0-10.0 sec 807 MBytes 677 Mbits/sec
客户端
# iperf -c 192.168.2.30
------------------------------------------------------------
Client connecting to 192.168.2.30, TCP port 5001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.20 port 38320 connected with 192.168.2.30 port 5001
[ 3] 0.0-10.0 sec 807 MBytes 677 Mbits/sec
可以看到TCP滑动窗口对性能的影响非常大,从每秒69M提升到每秒84M,啧啧~