我是靠谱客的博主 老实菠萝,这篇文章主要介绍tomcat 高流量调优,现在分享给大家,希望可以做个参考。

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

java 环境配置: export JAVA_OPTS="-server -Xms8g -Xmx8g -Xss128k -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=31"

复制代码
1
2
-server:一定要作为第一个参数,在多个CPU时性能佳
复制代码
1
2
-Xms8g:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
复制代码
1
2
3
-Xmx8g:java heap最大值,使用的最大内存 该值与Xms设为一样能防止GC后频繁分配内存 上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
复制代码
1
2
-Xss 128k 这使得JBoss每增加一个线程(thread)就会立即消耗128K内存,默认值好像是512k,这个值变小以后使得系统能够产生更多线程,支持高并发访问。
复制代码
1
2
-XX:ParallelGCThreads=20 配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。
复制代码
1
2
3
4
5
-XX:+UseConcMarkSweepGC Young区:可以使用普通的或者parallel 垃圾回收算法,由参数 -XX:+UseParNewGC来控制 Old 区:只能使用Concurrent Mark Sweep
复制代码
1
2
-XX:+UseParNewGC 年轻代使用parallel GC
复制代码
1
2
-XX:SurvivorRatio=8 -XX:SurvivorRatio在用的时候,如果设置成8,代表 -XX:SurvivorRatio:eden=2:8,如果设置成3,代表 -XX:SurvivorRatio:eden=2:3
复制代码
1
2
3
4
5
-XX:TargetSurvivorRatio=90 一个计算期望存活大小Desired survivor size的参数. 计算公式: (survivor_capacity * TargetSurvivorRatio) / 100 * sizeof(a pointer):survivor_capacity(一个survivor space的大小)乘以TargetSurvivorRatio, 表明所有age的survivor space对象的大小如果超过Desired survivor size,则重新计算threshold,以age和MaxTenuringThreshold的最小值为准,否则以MaxTenuringThreshold为准.
复制代码
1
2
3
-XX:MaxTenuringThreshold=31 在新生代中对象存活次数(经过Minor GC的次数)后仍然存活,就会晋升到旧生代。
复制代码
1
2
3
4
5
6
7
8
9
10
11
<Connector port="8188" protocol="HTTP/1.1" maxThreads="30000" minSpareThreads="512" maxSpareThreads="2048" enableLookups="false" redirectPort="8443" acceptCount="35000" debug="0" connectionTimeout="40000" disableUploadTimeout="true" URIEncoding="UTF-8" />

参数说明:

connectionTimeout - 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐 患的。通常可设置为30000毫秒。

keepAliveTimeout - 长连接最大保持时间(毫秒)。此处为15秒。

maxKeepAliveRequests - 最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。 一般设置在100~200之间)

maxHttpHeaderSize - http 请求头信息的最大程度,超过此长度的部分不予处理。一般8K。

URIEncoding - 指定Tomcat 容器的URL 编码格式。

acceptCount - 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中 的请求数,超过这个数的请求将不予处理,默认为10个。

disableUploadTimeout - 上传时是否使用超时机制

enableLookups - 是否反查域名,取值为:true 或false。为了提高处理能力,应设置为 false

bufferSize - defines the size (in bytes) of the buffer to be provided for input

streams created by this connector. By default, buffers of 2048 bytes are provided.

maxSpareThreads - 最大空闲连接数,一旦创建的线程超过这个值,Tomcat 就会关闭不再 需要的socket 线程The default value is 50.

maxThreads - 最多同时处理的连接数,Tomcat 使用线程来处理接收的每个请求。这个值表 示Tomcat 可创建的最大的线程数。minSpareThreads - 最小空闲线程数,Tomcat 初始化 时创建的线程数.

minProcessors - 最小空闲连接线程数,用于提高系统处理性能,默认值为10。

maxProcessors - 最大连接线程数,即:并发处理的最大请求数,默认值为75。

修改启动时内存参数

window 下, 在catalina.bat 最前面:

set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m

一定加在catalina.bat 最前面。

linux 下,在catalina.sh 最前面增加:

JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m

-Duser.timezone=Asia/Shanghai"

注意:前后二者区别,有无set,有无双引号。

转载于:https://my.oschina.net/superise/blog/803104

最后

以上就是老实菠萝最近收集整理的关于tomcat 高流量调优的全部内容,更多相关tomcat内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部