测试准备

1. 计划考量参数

TCP上传数据带宽

TCP下载数据带宽

UDP上传带宽

UDP下载带宽

多并发支持

稳定性

Tcp通讯网络延迟(小包:32、中包1k、大包1M)

UDP通讯网络延迟(小包:32、中包1k、大包1M)

协议可用性

指定文件真实http下载速度

2. 使用的软件

Iperf:可完成考量参数1-6

Pstools:可完成考量参数7-8

其余软件:完成考量参数9-10

测试执行

1. Iperf

1.1. 安装软件

服务器端(Centos)执行如下命令

wget http://downloads.es.net/pub/iperf/iperf-3.0.6.tar.gz

下载完成后进行解压

tar zxvf iperf-3.0.6.tar.gz

进入解压后的程序目录,执行以下命令

./configure && make && make install
Iperf3 -s

其中“iperf3 -s”命令为以服务器模式启动iperf软件,若启动成功则有如下提示(默认监听5201端口):

注:错误及解决方法

问题原因
Linux系统中找不到libiperf.so.0 库文件,导致执行iperf3 –s时提示缺少相关lib库

解决方法

先执行echo $LD_LIBRARY_PATH命令,得到系统LIB库所在位置,如:

[root@hengda ~]# echo $LD_LIBRARY_PATH
/usr/lib/oracle/11.2/client64/lib

再通过find ./ | grep libiperf.so.0查找服务器上是否存在该lib库文件,查询到后拷贝libiperf.so.0库文件到上一步找到的LIB库所在目录下。

客户端下载iperf windows版软件,下载地址:https://iperf.fr/iperf-download.php

下载后解压出iperf两个文件,打开cmd命令行窗口,进入该文件解压目录。

1.2. Iperf使用方法

1.2.1. Tcp上传数据带宽

执行命令iperf3 -c [serverip] -b 100M -t 20

-c代表以客户端方式运行

-b代表使用100M带宽进行测试,如果馆方为1000M有线网络,也可以使用-b 1000M进行测试。带宽测试需要考虑客户端本机网卡能力、馆方内网能力、出口带宽、公网带宽、服务云接入带宽等。

-t即为测试20s时间,如果省略该参数则默认测试10s。

结果上来看,上传带宽为93.8Mb/s,也就是达到了百兆左右。

这里说明的是,第一个包应为要建立tcp连接,所以传输和带宽都会略低,而第12.00-13.00传输和带宽都有所下降,说明在该秒存在明显的丢包。正常无明显丢包的测试结果应该如下:

1.2.2. Tcp下载数据带宽

执行命令iperf3 -c [serverip] -b 100M -t 20 -R

相比下载数据带宽测试多了一个-R参数,意为Reverse,即服务器端发送数据,客户端接收数据。

1.2.3. UDP上传数据带宽

执行命令iperf3 -c [serverip] -u -b 100M -t 20

其中比tcp的上传数据带宽测试命令多一个-u,意为使用udp协议。

1.2.4. UDP下载数据带宽

执行命令iperf3 -c [serverip] -u -b 100M -t 20 -R

 1.2.5. 多并发支持

执行命令iperf3 -c [serverip] -P 127 -i 20 -t 20

此处的-P是指启用多线程,127为线程数,范围为1-128,但是使用128则会引起windows端的iperf3程序崩溃,所以最多一台电脑可以模拟127个线程同时连接服务器。观察最后的统计结果,每个线程都有流量,且最后SUM为100M满速即可。

当然,-R和-u都是可以使用的,但是使用-u只能实现90个线程同时测试,超过90个线程软件最后会出现假死状态。

1.2.6. 稳定性测试

执行命令iperf3 -c [serverip] -t 3600

-t是设置时间,3600为持续测试3600s,即1小时。测试思路是可以通过增加时间来评估稳定性,如测试1小时(t的取值范围并未注明,但是10小时是可以的)。当然-P -u -R都是可选的参数。

2. PsTools

2.1. 软件安装

无需安装,解压即用。

2.2. 使用方法

2.2.1. Tcp通讯网络延迟(小包:32、中包1k、大包1M)

执行命令Psping -w 2 -n 100 -l [packet-size] [serverip:port]

此命令可以兼顾时延和端口连通性测试。可以通过修改-l后面的参数达到完成小包至大包的测试工作。

2.2.2. UDP通讯网络延迟(小包:32、中包1k、大包1M)

虽然在帮助信息中有提示使用-u参数可以测试udp的时延,但是经过抓包发现即使使用了-u参数,psping也是发出tcp报文,这应该是psping的一个bug。因而无法使用psping对udp的时延进行测试。

如果需要测试,则需要自研软件进行。

2.2.3. 协议(端口)可用性

执行命令psping -q -i 0 [serverip:port]

由于psping在udp测试上存在的bug,所以只能对tcp的协议进行测试。

此命令仅能确认某些特定端口的tcp报文是否被馆方网络禁用(如类似文安的客流统计box的视频在公司内部被禁止的情况),但也仅限于端口而未能覆盖应用协议层次。如特定端口的报文被禁用则丢包应为100%。需要确认多少个特殊端口的tcp协议报文则执行多少次即可。

3. 指定文件真实http下载速度

Windows的批处理应该可以解决,但是我们这边不太会。所以进行了简单的操作。固定下载服务器上某文件(文件大小一致),打印出下载文件的大小,下载开始时间,下载结束时间,需要手动计算。

我这边做了一个批处理文件,原理是将所有需要用的exe放在固定的位置,然后在批处理文件中依次执行上述命令,最后生成记录文件,也即报告,以这个结果文件来评判用户网络的环境。

这个方法目前来看初步应该是勉强够用了,但是在实际测试过程中需要手动修改批处理文件内容,所以还是建议如果可能,可以尝试做个壳子,或请开发会写bat编码的同学重新给编一下具体内容,易用性会强很多。下方附件为初步生成的结果文件,这里面测试过程中使用了几个公司内部的服务器,仅参考示意即可。

测试linux服务器带宽的更多相关文章

  1. 【Linux】使用 iperf 测试 Linux 服务器带宽

    iperf 简介 iperf 是一个用于测试网络带宽的命令行工具,可以测试服务器的网络吞吐量.目前发现两个很实用的功能: 测试服务器网络吞吐量:如果我们需要知道某台服务器的「最大」网络带宽,那么最好在 ...

  2. LINUX服务器带宽跑满、负载过高问题排查

    1.centos 安装流量监控iftop apt-get  install iftop -y 2.查看网卡名称 ifconfig 3.查看端口占用情况 iftop -i 网卡名称 -P 执行 nets ...

  3. 测试linux服务器是否能接入微信

    官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319 php.代码 <?php $a = $_GE ...

  4. Linux 服务器性能测试报告-sysbench命令实践

    Linux 服务器性能测试报告 我们使用linux 工具sysbench 来测试linux服务器性能,目前在Centos上进行操作 Install sysbench yum -y install sy ...

  5. linux测试带宽命令,Linux服务器网络带宽测试iperf

    linux测试带宽命令,Linux服务器网络带宽测试iperf必须先运行iperf serveriperf -s -i 2客户端iperf -c 服务端IP地址 iperf原理解析 iperf工具可以 ...

  6. 真实记录疑似Linux病毒导致服务器 带宽跑满的解决过程

    案例描述 由于最近我在重构之前的APP,需要和server端进行数据交互,发现有一个现象,那么就是隔1~2天总会发生获取数据超时的问题,而且必须要重启服务器才能解决.早在之前,我有留意到这个问题,但是 ...

  7. 结合jenkins在Linux服务器搭建测试环境

    何时使用: 测试过程中我们需要持续构建一个软件项目,为避免重复的手动下载.解压操作,我们需要搭建一个能够自动构建的测试环境,当代码有更新时,测试人员只需点一下[构建]即可拉取最新的代码进行测试(也可设 ...

  8. VPS速度测试(4):上传下载速度、服务器带宽、Ping响应时间

    1.VPS的速度好坏经常是我们选择某一个VPS商家的重要参考指标,对于国外的VPS主机我们可以执行以下命令来测试VPS入口带宽是多少. wget https://cachefly.cachefly.n ...

  9. linux减少服务器带宽的方法

    linux减少服务器带宽的方法用百度静态资源公共库http://cdn.code.baidu.com/ 不仅可以不使用服务器流量 而且还有cdn加速比方说http://apps.bdimg.com/l ...

随机推荐

  1. LuoguP2657 [SCOI2009]windy数 【数位dp】By cellur925

    题目传送门 题目大意:在A和B之间,包括A和B,总共有多少个不含前导零且相邻两个数字之差至少为2的正整数? 显然是数位dp啦=w=. 显然与上一位有关,我们$dfs$的时候就要记录$pre$.因为这是 ...

  2. UITableViewCell添加点击时改变字体的颜色、背景、图标

    改变字体颜色:cell.textLabel.highlightedTextColor 改变背景颜色:cell.selectedBackgroundView (必须是图片哦) 改变图标颜色:cell.i ...

  3. AtCoder Grand Contest 018 D - Tree and Hamilton Path

    题目传送门:https://agc018.contest.atcoder.jp/tasks/agc018_d 题目大意: 给定一棵\(N\)个点的带权树,求最长哈密顿路径(不重不漏经过每个点一次,两点 ...

  4. HDU6447(离散化扫描线+树状数组)

    一眼看过去就x排序扫描一下,y是1e9的离散化一下,每层用树状数组维护一下,然后像dp倒着循环似的树状数组就用y倒着插就可行了. 类似题目练习:BZOJ4653.BZOJ1218 #pragma co ...

  5. Traffic Real Time Query System HDU - 3686

    https://vjudge.net/problem/HDU-3686 点双啊,就是在求割顶的时候,另外用一个栈来存一些边 在遍历u点出发的边时,遇到树边或反向边(u,v)就把此边加入栈(可能要记一下 ...

  6. apache mod_alias模块功能介绍

    我觉得mod_alias根mod_rewrite挺像的,都可以实现url的重写,而mod_alias可以实现简单的url重写的功能 ,而mod_rewrite可以实现比较复杂的重写.mod_alias ...

  7. Web版简易五子棋

    前些时候把大三写的C++版五子棋改成Web板挂到了网上,具有一定傻瓜式智能,欢迎体验使用拍砖:http://www.zhentiyuan.com/Games/QuickFiveChess.aspx 现 ...

  8. 【学习笔记】深入理解js原型和闭包(8)——简述【执行上下文】上

    什么是“执行上下文”(也叫做“执行上下文环境”)?暂且不下定义,先看一段代码: 第一句报错,a未定义,很正常.第二句.第三句输出都是undefined,说明浏览器在执行console.log(a)时, ...

  9. js深拷贝与浅拷贝的区别及实现

    1. 对于基本数据类型 其值在内存中占据着固定大小的空间,并被保存在栈内存中.当一个变量向另一个变量复制基本类型的值,会创建这个值的副本,并且我们不能给基本数据类型的值添加属性.其为深拷贝. 2. 对 ...

  10. Delphi定时器控件TTimer“一睡不醒”问题研究

    1,试验1—基础代码 1.1页面控件与代码 定时器 Timer1 Timer_work Interval 1000 1500 Enabled True True Ontimer事件 then exit ...