近期做网络测试,需要给网络加一定的压力,再测试此压力下的网络情况,提出的需求是:
- 模拟http请求,能够返回不同的大小的页面
- 自由调节压力,不需要将带宽跑满
- 轻量级
在网上调研了一些工具,例如iperf之类的,都是测带宽用的,换言之都会将带宽跑满,于是便自己搭了个简易的服务器,在服务器上造出不同大小的文件,然后在客户端进行curl请求,以造成不同的压力。
1.服务器端
1.1系统环境
centos7
1.2安装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
|
相关代码下载