CentOS下测量带宽、延迟、抖动和丢包率
当我们说一个网络环境好时,通常是指我们“感觉”访问网站立刻就打开了;可是如果反过来,一个网站很久才打开,就一定是网络环境差吗?未必,也可能是网站本身有问题。如果这是自己的网站,你一定不希望通过反复刷新页面,或者多拿几台电脑访问去“感觉”它的速度作为判断网络是否良好的依据,我们需要一个更加可靠的技术手段。这些指标便是判断到服务器的网络是否良好的基础指标。
除了故障排查外,以下几种情况我们也需要了解这些参数:
- 购买
VPS
:在你购买一台VPS
,特别是外国的VPS
时,你一定会想了解到底在外国和在国内能不能顺畅地访问自己的VPS
,特别是带宽参数是否跟实际购买的一致; - 性能测试:你希望对自己的网站做性能测试,需要确保自己的网络环境是满足指标要求的;
什么样的指标是合格的?
首先,没有一个通用的指标,不同的应用场景所需要的指标各不相同,比如 IP电话、视频与访问网站的网络指标要求就各不相同,这里只分析网站访问的情况。
从服务器环境角度看,服务器只能控制自己的带宽,但是普通用户实际访问的环境是控制不了的,服务器需要做的是在差的环境也能提供较好的体验,这不是本文的主题,所以我们谈指标时并不是指服务器的角度。
从用户(开发者或者普通用户)环境角度看,如果一个网站本身是符合要求的(Google Pagespeed Insight
达到90分以上),网络环境应该满足什么样的指标,用户打开我们的网站才会很快。这本身也是一个经验指标,并没有一个定论,下面的指标是我在做性能测试时要求的指标,它的要求高于普通用户浏览网站,因此能够满足此指标,网络环境是没问题的。
- 带宽:与服务商提供的最大带宽接近
- 延迟:
<100ms
- 抖动:
<20ms
- 丢包率:
<1%
测量方法
测量服务器带宽
使用iperf
工具测试服务器带宽,它分为服务端与客户端,两边都要安装iperf
工具。在Linux
通过yum
或者apt-get
即可直接安装。
服务端(假设IP
为106.14.26.11
)运行iperf
服务:
#iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default)
这是一台上下行带宽都接近100Mbits/sec
的服务器,实测数值不应该与该数值偏离太远。
客户端
测试上行和下行带宽
$iperf -c 106.14.26.11 -t 60 -d ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ ------------------------------------------------------------ Client connecting to 45.32.64.187, TCP port 5001 TCP window size: 197 KByte (default) ------------------------------------------------------------ [ 4] local 104.250.144.8 port 50040 connected with 106.14.26.11 port 5001 [ 5] local 104.250.144.8 port 5001 connected with 106.14.26.11 port 34386 [ ID] Interval Transfer Bandwidth [ 4] 0.0-60.0 sec 658 MBytes 92.0 Mbits/sec #上行带宽 [ 5] 0.0-60.4 sec 628 MBytes 87.4 Mbits/sec #下行带宽
从测试结果看,上行带宽为92.0Mbits/sec
, 下行带宽为87.2Mbits/sec
,低于服务器的100Mbits/sec
,但是没有低得很离谱。
如果你的客户端无法连接到
iperf
服务端,可能是主机的防火墙挡住或者VPS
提供商做了限制。对于前者,通过iptables -F
即可解决;对于后者,有几种解法:进VPS
提供商的控制台修改、联系VPS
提供商、修改端口为外部可以访问得到的端口。
测量延迟、抖动和丢包率
延迟,抖动和丢包率,直接使用ping
做测试即可。如果想测量这个值,建议抓100
个包测试:
$ ping -c 100 www.baidu.com PING www.a.shifen.com (163.177.151.109): 56 data bytes 64 bytes from 163.177.151.109: icmp_seq=0 ttl=55 time=26.639 ms 64 bytes from 163.177.151.109: icmp_seq=1 ttl=55 time=24.329 ms 64 bytes from 163.177.151.109: icmp_seq=2 ttl=55 time=24.794 ms 64 bytes from 163.177.151.109: icmp_seq=3 ttl=55 time=22.709 ms 64 bytes from 163.177.151.109: icmp_seq=4 ttl=55 time=39.994 ms 64 bytes from 163.177.151.109: icmp_seq=5 ttl=55 time=50.786 ms 。。。省略 ^C --- www.a.shifen.com ping statistics --- 100 packets transmitted, 100 packets received, 0.0% packet loss #最后这个百分比就是丢 包率 round-trip min/avg/max/stddev = 21.505/26.743/50.786/6.613 ms #分别表示最小延迟、平均延迟、最大延迟、抖动(抖动就是延迟标准差)
根据上面的结果,我们得到结论:
延迟:26.743ms 抖动: 6.613ms 丢包率: 0.0%
符合指标要求,所以访问百度一定很快。(这里假设带宽是没问题的,测量到服务器的带宽需要服务器支持,所以是测量不了的)
参考资料

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
VM虚拟机环境安装Centos6.9
一、准备工具 VMware Workstation CentOS-6.9-x86_64-minimal.iso SecureCRTPortabl 二、安装系统 1、图解虚拟机安装过程 install or upgrade an existing system install system with basic vedio driver rescue install system 第一项为正常安装 第二项为基本显卡安装 第三项为救援模式 选择第一项 检查硬件 故障 disc found此项主要检查安装光盘有无问题。选择检查,选择ok 配置网络 : 需要点掉自动连接此项相当于开启网卡 重新启动 2、网络配置 使用root和密码登录到系统中 然后设置网卡 vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 TYPE=Ethernet BOOTPROTO=static//静态地址 DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes I...
- 下一篇
解决VM搭建CentOS7过程中,静态IP地址未起作用
一、问题描述 1、环境工具 VMware_workstation_full_12.5.2 CentOS-7-x86_64-Minimal-1511.iso SecureCRTPortable 2、出现问题 (1)启动虚拟机后,使用SecureCRT 连接,出现问题 Key exchange failed. No compatible hostkey. The server supports these methods: ecdsa-sha2-nistp256,ssh-ed25519 (2)排查过程中出现的问题 使用IfConfig命令查询发现,静态IP地址未起作用。 IfConfig和Ifcfg-eno16777736中IP地址不一样。 IfConfig查询IP 查询静态IP Windows 7中两个地址都可以Ping通 二、解决办法 1、更改VM网络编辑器中DHCP设置 (1)打开虚拟网络编辑器 (2)进入DHCP设置 (3)原DHCP设置更改范围 2、更改Ifcfg-eno16777736中BOOTPROTO参数 BOOTPROTO=static 静态IP BOOTP...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19