当我们需要对部署在liunx服务器上的应用接口进行压力,功能,非功能测试时,难免会涉及到多线程占满服务器短连接端口导致压测效果有所偏差,这个时候需要对服务器进行一些基础的设置来保证我们的压测更加符合预期效果。好了,哔哔了这么多下面上干货。
1.cat /etc/sysctl.conf检查该文件如下图:
如果你的服务器没有这些配置就加进去,其中net.ipv4.tcp.tw_recycle和net.ipv4.tcp.timestamps这两个参数不能共存,因为Linux 从4.12内核版本开始移除了 tcp_tw_recycle 这个参数,所以4.12版本之前用第一个,4.12版本之后的用第二个。
解释一下tcp这几个参数的作用:
//表示开启对于TCP时间戳的支持,若该项设置为为0,则net.ipv4.tcp_tw_reuse设置不起作用,该值系统默认是0
net.ipv4.ip_forward=1
//表示开启对于TCP时间戳的支持,若该项设置为为0,则net.ipv4.tcp_tw_reuse设置不起作用,该值系统默认是0
net.ipv4.tcp_syncookies = 1
//表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1
//表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭
net.ipv4.tcp_tw_recycle = 1
//修改系統默认的TIMEOUT时间,默认是60
net.ipv4.tcp_fin_timeout = 30
//tcp_tw_recycle的代替品,两者不能同时共存
net.ipv4.tcp_timestamps = 1
查看liunx内核版本的命令:
cat /proc/version
2.cat /etc/security/limits.conf查看该文件:
3.cat /etc/security/limits.d/20-nproc.conf查看该文件:
4.一般都会先查看一下Java环境:
[jsbank@hxapp35 ~]$ java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
最后最后需要把修改的文件使之生效:
/sbin/sysctl -p
以上配置适用每台服务器。
以上是我压测过程中的心路历程仅供大家参考,如有不同意见欢迎评论留言,大家共同进步!!!