压测webserver接口-数据库测试
1、压到1000并发时,应用服务器报两个错误,并且伴随着并发数的不断降低
具体错误如下
2、解决应用服务器报错方法
修改数据库的连接池,如图
修改jvm内存参数,如图:
修改监听请求的线程数,如图:
--以上调优的连接数都是为了解决jdbc连接数不够的情况
把句柄从1024-->修改为865535
参考资料:https://blog.51cto.com/12824426/2060594
================================================
linux 默认值 open files为1024。查看当前系统值:
# ulimit -n
1024
说明server只允许同时打开1024个文件。
使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。
新装的linux 默认只有1024 ,当作负载较大的服务器时,很容易遇到error: too many open files。因此,需要将其改大,在/etc/security/limits.conf最后增加:
* soft nofile 65535
* hard nofile 65535
* soft noproc 65535
* hard noproc 65535
============================================
--以上调优解决的是too many open file错误
|--以上两个调优解决了应用服务器报的错
3、解决并发数不断降低,断掉的错误方法,即:1000并发掉到800,600
导致的原因:
1>.脚本请求的时间太快,需要引入思考时间:200ms,
2>.负载太大并且tps随着并发数的增加也不会增长,故增加负载机
解决方法:
1、在压测时不断监控windows负载机的端口连接数:终端输入:netstat -ano|find /i /c "TIME"
检测发现,只要端口连接数达不到5w,基本不会往下掉并发数,只要达到window的端口做大限制,就会往下掉
2、查看linux服务器waittime的命令:netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
TIME_WAIT 625 ---等待的tcp连接
FIN_WAIT1 6
ESTABLISHED 82 --正常运行的tcp连接
SYN_RECV 8
====================================