jvm参数
启动jvm参数
1 | JAVA_OPTS="-server -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=512M -XX:MaxPermSize=1024m -Xms2048m -Xmx2048m " |
-Xms:Java虚拟机初始化时堆的最小内存,一般与 Xmx配置为相同值,这样的好处是GC不必再为扩展内存空间而消耗性能;
-Xmx:Java虚拟机可使用堆的最大内存;
-XX:PermSize:Java虚拟机永久代大小;
-XX:MaxPermSize:Java虚拟机永久代大小最大值;
-XX:NewSize=:新生代空间初始化大小
-XX:MaxNewSize=:新生代空间最大值
jmap –heap $pid 可以看到MaxHeapSize 等参数已经生效
配置优化
connection并发优化
/tomcat-8.5.38/conf/server.xml
https://tomcat.apache.org/tomcat-8.5-doc/config/executor.html
1 | <Executor name="tomcatThreadPool" |
maxThreads: 服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量,压测计算,要排除单纯处理业务耗时方法,如果未指定,默认值为200
minSpareThreads:线程的最小运行数目,这些始终保持运行。如果未指定,默认值为10。
maxHttpHeaderSize:请求和响应的HTTP头的最大大小,以字节为单位指定。如果没有指定,这个属性被设置为8192(8 KB)。
1 | sed -i '/connectionTimeout=/i\ executor="tomcatThreadPool"' /opt/apache/tomcat-8.5.38/conf/server.xml |
connectionTimeout代表连接超时时间,单位为毫秒,默认值为60000。通常情况下设置为30000。
https://tomcat.apache.org/tomcat-8.5-doc/config/http.html
cache缓存压缩优化
/tomcat-8.5.38/conf/context.xml
tomcat8以上对resource采取了cache,而默认的大小是10M
consider increasing the maximum size of the cache
1 | sed -i '/^<\/Context>/i\<Resources cachingAllowed="true" cacheMaxSize="102400" \/>' /opt/apache/tomcat-8.5.38/conf/context.xml |
context.xml文件内添加到
节点内 cacheMaxSize值按需设置,单位K ,
安全优化
普通用户启动/修改端口号
清空站点目录下ROOT下管理页面等文件,ROOT下有一些站点的管理程序可以查看tomcat的各种信息及配置
关闭DNS查询,方式是修改server.xml文件中的enableLookups参数值改为false:enableLookups="false"
设置session过期时间
1 | 1.在tomcat——>conf——>servler.xml文件中定义: |