日期:2014-05-16 浏览次数:20628 次
公司开发IM系统,采用Openfire+Spark,需要对openfire服务器进行压力测试,采用多线程几台PC连接Openfire进行测试。
但是当openfire部署在Windows ?32位上都能支撑到4000+,反而在Redhat Linux Enterprise ?64位下竟然不能突破1000,当时很郁闷,经过反复测试及网上查找资料,得出需要对Linux进行优化。优化命令如下:
● 增加文件描述符
ulimit -n 65535
echo 65532 > /proc/sys/fs/file-max
● 优化TCP/IP设置
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 60000 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 15000 > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
● 其他优化
#使用更多的本地端口
echo 1024 25000 > /proc/sys/net/ipv4/ip_local_port_range
#增加更多的socket buffer内存(参考)
echo 2621143 > /proc/sys/net/core/rmem_max
echo 262143 > /proc/sys/net/core/rmem_default
echo 4096 131072 262143 > /proc/sys/net/ipv4/tcp_rmem
echo 4096 13107262143 > /proc/sys/net/ipv4/tcp_wmem
#增加运行期所需的shm内存(参考)
echo "67108864" > /proc/sys/kernel/shmmax
echo 16777216 > /proc/sys/net/core/rmem_max
echo 16777216 > /proc/sys/net/core/wmem_default
echo 16777216 > /proc/sys/net/core/wmem_max
echo 4096 > /proc/sys/net/core/somaxconn
echo 262143 > /proc/sys/net/core/rmem_default