linux服务器 tcp高并发压测需要设置项

  • linux服务器 tcp高并发压测需要设置项已关闭评论
  • 100 次浏览
  • A+
所属分类:linux技术
linux服务器部署了一个tcp服务,需要进行并发压力测试  看看服务器能支持多少个tcp长连接   预计会有50w个连接
需要设置linux 不然是无法支持这么多连接的   如果达到这个值是无法建立新连接的  报错信息一般为  too many open files
 
1 , fs.file-max linux系统能打开的文件句柄数量  这个要增大  默认(65535)肯定是不够的
查看命令  sysctl -a | grep -a "fs.file-max"
设置
    echo "fs.file-max = 2100000" >> /etc/sysctl.conf   //设置为110w
 sysctl -p  //立即生效
 
2 ,ulimit   控制用户级别能打开的文件句柄数量 
    查看命令  ulimit -n
 设置  ulimit -n 1000000  //设置为100w 临时生效
 
    永久生效方法   vim  /etc/security/limits.conf
                            *  hard  nofile  1000000  //不要超过一百万 值要小于  nr_open
        * soft   nofile   1000000
    重启服务器永久生效
  
 * 如果要超过一百万 还需要设置一个  /proc/sys/fs/nr_open  进程级别能打开的文件句柄数量  (linux内核2.6.25及之后  之前是无法设置的)
  查看    cat /proc/sys/fs/nr_open    默认值为 1048576   即1024*1024 
  设置    echo "fs.nr_open =  1500000"  >>  /etc/sysctl.conf   要小于fs.file-max
     sysctl -p  使修改生效命令
    

 查看tcp连接数命令                     netstat -an | grep "ESTABLISHED" | wc -l    看可不可以达到一百万
 查看tcp连接数量命令(windows)   netstat -an | find "ESTABLISHED" /c
 
 但是在高并发情况下 连接一直增长不上了(2秒内有超过6w个客户端连接过来)

 netstat -s | grep "SYNs to LISTEN" 查看tcp丢包数量   多次查看 发现丢包数量一直在增长 
 设置:
 echo 409600 > /proc/sys/net/ipv4/tcp_max_syn_backlog
 echo 409600 > /proc/sys/net/core/somaxconn