本文摘自菜鸟白皮书部分内容,有少量修改。因本人水平有限,如有不对之处,还望各位不吝赐教,共同进步。
8.1. 服务器优化
部分服务器优化方法参考如下表
linux调优
调优类型 | 调优对象 | 参数描述 | 参数值 |
---|---|---|---|
命令 | TCP | 查看TCP链接状态数量 | netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' |
socket | 系统参数 | 半链接队列(用来保存处于SYN_SENT和SYN_RECV状态的请求) | echo 2048 >/proc/sys/net/ipv4/tcp_max_syn_backlog |
socket | 系统参数 | accepted队列(用来保存处于established状态,但是应用层没有调用accept取走的请求) | echo 1024 >/proc/sys/net/core/somaxconn |
程序 | iptables | 关闭防火墙 | iptables-L |
tomcat调优
参数 | 含义 |
connectionTimeout | 增加超时时间 |
maxThreads | 增大并发线程数量 |
配置示例
<Connector port="7001" protocol="HTTP/1.1" connectionTimeout="15000" redirectPort="8443" maxParameterCount="1000" maxThreads="250" maxPostSize="512000" acceptCount="200" useBodyEncodingForURI="true" />
jvm调优
命令 | 使用方法 | 作用 |
jstat | jstat -gcutil $pid | 打印gc信息 |
jstack | jstack $pid | 打印堆栈信息 |
通过启动参数,也可对jvm进行相应的调整,如通过:Xmx, Cmx, Xmn, Xms, Persize可以调整jvm堆大小;通过调整gc方式实现并行CMS