一. 内存优化
主要是对tomcat启动参数进行优化,修改tomcat启动脚本catalina.sh中的设置
1. 参数说明
- jdk版本
-server
:启用jdk的server版,一定要作为第一个参数,在多个CPU时性能佳; 分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半
-Xms
:jvm初始内存,cpu性能高时此值应设的大一些;此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存
-Xmx
:jvm最大内存;其他
-XX:PermSize
:永久代的最小值;
-XX:MaxPermSize
:永久代的最大值;
-XX:MaxNewSize
:年轻代最大值
公司服务器内存为2G时建议设置:
JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'
二. 修改启动模式
修改server.xml里的Connector节点,修改protocol为org.apache.coyote.http11.Http11NioProtocol
三. 并发优化
修改server.xml
1. 参数说明
- maxThreads:客户请求最大线程数;
- minSpareThreads:Tomcat初始化时创建的socket线程数;
- maxSpareThreads:Tomcat连接器的最大空闲socket线程数;
- enableLookups: 是否反查域名,取值为:true或false.为了提高处理能力,应设置为false;
- acceptAccount: 允许的最大连接数,应大于等于maxProcessors,默认值为100,满了之后客户请求会被拒绝(不能小于naxSpreThreads)
- connectionTimeout: 网络连接超时,单位:毫秒.设置为0表示永不超时,这样设置有隐患的.通常可设置为30000毫秒。
- minProcessors: 最小空闲连接线程数,用于提高系统处理性能,默认值为10
- maxProcessors: 最大连接线程数,即:并发处理的最大请求数,默认值为75;
- URIEncoding: URL统一编码
- 配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
minProcessors="100"
maxProcessors="1000"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
四. 缓存优化
修改server.xml
1. 参数说明
compression: 打开压缩功能
compressionMinSize: 启用压缩的输出内容大小,这里面默认为2KB
compressableMimeType: 压缩类型
connectionTimeout: 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间
- 配置示例
compression=”on”
compressionMinSize=”2048”
compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”
connectionTimeout=”20000”