-
Notifications
You must be signed in to change notification settings - Fork 0
Stress test
如果程序提示“Too many open files”错误时,可能是限制最大打开文件数,可以执行以下命令查看当前用户允许最大打开文件数:
ulimit -a
列表中以下项为最大打开文件数:
open files (-n) 1024 #指单个进程最大打开文件数
使用命令: lsof -p 可以查看单个进程所有打开的文件详情
例:lsof -p 3092 | wc -l
增加允许打开的文件数:修改系统配置文件
sudo vim /etc/security/limits.conf
#在最后加入
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
保存后,重新打开终端即可生效。
注:ubuntu下的非root用户的终端最大支持4096(而非root用户在SSH终端可以支持65535),而root用户下可以设置到65535。
如果程序出现“Cannot assign requested address”错误信息,可以看看/etc/sysctl.conf文件是否添加了相关设置。
#修改以下文件:
sudo vim /etc/sysctl.conf
#文件中加入
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.ip_local_port_range=1000 65000
#持久化
sysctl -p
#重新打开终端(如果还出现错误,则重启系统试试)
#统计TCP数:
netstat -n | awk '/^tcp/ {++state[$NF]} END {for(a in state) print a, state[a]}'
ss -ant | awk 'NR>=2 {++State[$1]} END {for (key in State) print key,State[key]}'
ss -s
说明:由于ubuntu的终端下非root用户只能支持最大4096个文件打开,所以需要在root用户下做压力测试,以下为root用户下做压力测试。
注:通过su命令进入root用户
#创建压力测试目录及配置文件
创建一个目录,在该目录下创建两个配置文件,在文件中添加以下配置参数:
例:在home目录下创建stresstest目录,如:/home/stresstest
配置文件:bigdnseed.conf
allowalladdr=1
trustaddress=127.0.0.1:9901
stressbacktest=1
backtestaddrcount=1500
showrunstatdata=1
showrunstattime=1
showdbstatdata=0
showdbstattime=10
配置文件:dnseedstresstest.conf
localip=127.0.0.1
trustport=9901
beginport=10000
portcount=5000
perportcount=16
connectip=127.0.0.1 #::1
connectport=9906
perconnectcount=1500
maxconnectcount=2000000
注:配置参数说明请参见HELP,例:bigdnseed -help
#运行程序
#运行bigdnseed主程序:
bigdnseed -workdir=/home/stresstest
#运行压力测试程序
bigdnseed_test -workdir=/home/stresstest
#运行统计说明
#bigdnseed程序统计说明:
2019-02-22 16:57:18 [INFO] Session:8459 {In:4195 Out:4264}, Total: {In:1386009-1460 (S:1386008-1460 F:1-0), Out:1378732-1359 (S:1378732-1359 F:0-0)}
Session: 当前TCP会话数
In: 当前TCP接收会话数
Out: 当前TCP回访会话数
Total: 累计统计数
In: 累计接收会话数 - 每秒计数
S: 累计接收会话成功数 - 每秒计数
F: 累计接收会话失败数 - 每秒计数
Out: 累计回访会话数 - 每秒计数
S: 累计回访会话成功数 - 每秒计数
F: 累计回访会话失败数 - 每秒计数
#bigdnseed_test程序统计说明:
2019-02-22 16:57:12 [INFO] ======================================================
2019-02-22 16:57:12 [INFO] Current connect count: 9104
2019-02-22 16:57:12 [INFO] Current in count: 4560
2019-02-22 16:57:12 [INFO] Current out count: 4544
2019-02-22 16:57:12 [INFO] Total out count: 1380122 - 1502
2019-02-22 16:57:12 [INFO] Out success: 1380122 - 1502
2019-02-22 16:57:12 [INFO] Out fail: 0 - 0
2019-02-22 16:57:12 [INFO] Total in count: 1372938 - 1500
Current connect count: 当前TCP连接数
Current in count: 当前接收连接数
Current out count: 当前出连接数
Total out count: 累计出连接数
Out success: 累计出连接成功数
Out fail: 累计出连接失败数
Total in count: 累计接收连接数