Skip to main content

30W长连接并发压力测试报告

准备工作

操作系统Ubuntu 12 在/etc/sysctl.conf中添加如下配置:

fs.file-max = 1048576
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_mem = 786432 2097152 3145728
net.ipv4.tcp_rmem = 4096 4096 16777216
net.ipv4.tcp_wmem = 4096 4096 16777216

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

在/etc/security/limits.conf中添加如下配置:

*   soft nofile 1048576
* hard nofile 1048576

最后使用ulimit -an查询设置是否生效。 测试主机cpu:

内存:

客户端测试机用VMware创建12台虚拟机。机器性能就不列举了。每台虚拟机可以跑3W链接

1:t-io启动时内存占用率以及链接情况

2:5W链接时内存占用情况

3:10W链接时内存占用情况

4:20W链接时内存占用情况

5:30W链接时内存占用情况

java进程统计情况

cpu

jvm

2小时后观察内存变化情况如下图

结论如下

  • 0-10万连接。内存变化较大。主要是由于内存初始化时jvm会占用一部分内存。
  • 10万之后。每增加10万连接 内存占用率上升300M左右。
  • 随着连接数增加可以发现cpu性能对连接数影响不大。
  • 新生代内存与老生代内存占用率比较合理。
  • 并发30W连接在2小时内。内存变化不明显。处于合理状态

根据以上数据可以推论 —-> 以8G内存(可使用内存为7.5G左右)为例:当内存占用率达到5G左右时足以支撑100W并发连接。