近期做网络测试,需要给网络加一定的压力,再测试此压力下的网络情况,提出的需求是:

  • 模拟http请求,能够返回不同的大小的页面
  • 自由调节压力,不需要将带宽跑满
  • 轻量级

在网上调研了一些工具,例如iperf之类的,都是测带宽用的,换言之都会将带宽跑满,于是便自己搭了个简易的服务器,在服务器上造出不同大小的文件,然后在客户端进行curl请求,以造成不同的压力。

1.服务器端

1.1系统环境

centos7

1.2安装nginx

1
$ yum install nginx

如果这一步找不到合适的源可以安装第三方软件库:

1
$ yum -y install epel-release

卸载该软件库为:

1
$ yum -y remove epel-releas

1.3配置nginx

打开配置文件

1
$ vi /etc/nginx/nginx.conf

修改配置文件

1
server { listen 80 default_server; #此处为服务器监听端口,默认为80端口。 listen [::]:80 default_server; #此处为服务器监听端口,默认为80端口。 server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { autoindex on; #此处为开启服务器端目录浏览功能 autoindex_exact_size on; #此处为显示目录中文件的大小 autoindex_localtime on; #此处为显示目录中文件的创建时间 } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { }

修改好后保存退出,并检查配置文件的语法是否正确。

1
2
$ nginx -t -c /etc/nginx/nginx.conf
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

启动nginx

1
$ /usr/sbin/nginx -c /etc/nginx/nginx.conf

1.4服务器端造数据

进入配置文件中的root文件夹root/usr/share/nginx/html,添加一个存放自己数据的文件夹

1
$ cd /usr/share/nginx/html $ mkdir logs $ ls 404.html 50x.html index.html logs nginx-logo.png poweredby.png

进入自己创建的存放数据的文件夹logs,添加不同大小的文件

1
$ cd /usr/share/nginx/html/logs $ dd if=/dev/zero of=1M bs=1M count=1

dd if=/dev/zero of=1M bs=1M count=1:bs=1M为创建文件大小;of=1M为创建文件的名称,可带上文件类型,如1M.txt。

1.5通过网页访问服务器

访问网站:http://10.0.251.180/logs/,其中10.0.251.180为服务器IP。出现我们创建的文件,则nginx正在运行。

2客户端配置文件

2.1修改配置文件

将httpdownload文件夹拷贝至root下面。
进入httpdownload文件夹,根据需求修改config.txt配置文件。

1
$ cd /root/httpdownload $ vi /root/httpdownload/config.txt IP:http://10.0.251.180/logs/ filesize1:500K count1:1 filesize2:1M count1:2

第一项是下载服务器文件IP;第二项是下载文件大小;第三项是同时下载该大小文件的数量;可配置同时并发下载不同大小和数量的文件。需要将“filesize”和“count”的序号依次递增。

2.2运行curls.sh

1
$ /root/httpdownload/curls.sh

相关代码下载