Jexus 高并发请求的优化技巧 笔记
Jexus web server 5.1 每个工作进程的最大并发数固定为1万,最多可以同时开启4个工作进程,因此,每台Jexus V5.1服务器最多可以到支持4万个并发连接。但是,按照linux系统的默认设定,linux是不能支持这么高的并发请求的,只有对linux进行一些必要的优化,才能达到让Jexus支持大并发的目的。
一、调整文件描述符数量限制
编辑 /etc/security/limits.conf,更改或添加入如下4行内容:
* soft nofile 20000
* hard nofile 20000
root soft nofile 20000
root hard nofile 20000
二、调整网络参数
编辑“/etc/sysctl.conf”,更改或添加如下内容:
net.core.somaxconn=8192
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_fin_timeout=20
net.ipv4.tcp_keepalive_time=1200
net.ipv4.tcp_max_syn_backlog=8192
net.ipv4.tcp_max_tw_buckets=5000
如果启用了iptables防火墙并加载了ip_conntrack模块,还需加入:
net.ipv4.ip_conntrack_max = 10240
注:ubuntu是“net.ipv4.netfilter.ip_conntrack_max”。
上述参数修改完成后,请用"sysctl -p" 命令使其生效。
三、整调Jexus工作进程数
Jexus默认工作进程数为1,为了支持更大的并发数量,应根据服务器CPU内核数量及内存大小,合理调整工作进程数量。方法是,编辑 jws.conf,去掉“httpd.processes”项前边的“#”号,把进程数填写到等号右边(Jexus v5.1版最大值不超过4)。
注:
1)进程数与cpu的总核数有关,建议4核以内设为2,8核设为3-4,更多内核数就设为5-8。
2)进程数还与服务内存及WEB应用所占内存的多少有关,建议每个工作进程平均内存可用量不低于512M。
四、mono版本选择
建议使用mono最新的成熟版本。