开始前准备。操做系统Ubuntu 12java
在/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中添加以下配置:jvm
* soft nofile 1048576 * hard nofile 1048576
最后使用ulimit -an查询设置是否生效。tcp
测试主机cpu:性能
内存:测试
客户端测试机用VMware建立12台虚拟机。机器性能就不列举了。每台虚拟机能够跑3W连接操作系统
1:t-io启动时内存占用率以及连接状况code
2:5W连接时内存占用状况进程
3:10Wip
4:20W
5:30W
----------------------------------------------------------------------------
java进程统计状况
cpu
jvm
2小时后观察内存变化状况以下图
结论以下
1:0-10万链接。内存变化较大。主要是因为内存初始化时jvm会占用一部份内存。
2:10万以后。每增长10万链接 内存占用率上升300M左右。
3:随着链接数增长能够发现cpu性能对链接数影响不大。
4:新生代内存与老生代内存占用率比较合理。
5:并发30W链接在2小时内。内存变化不明显。处于合理状态
根据以上数据能够推论 —-> 以8G内存(可以使用内存为7.5G左右)为例:当内存占用率达到5G左右时足以支撑100W并发链接。