我是靠谱客的博主 老实菠萝,最近开发中收集的这篇文章主要介绍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"

-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms8g:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx8g:java heap最大值,使用的最大内存 该值与Xms设为一样能防止GC后频繁分配内存
上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
-Xss 128k 这使得JBoss每增加一个线程(thread)就会立即消耗128K内存,默认值好像是512k,这个值变小以后使得系统能够产生更多线程,支持高并发访问。
-XX:ParallelGCThreads=20 配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。

-XX:+UseConcMarkSweepGC 
Young区:可以使用普通的或者parallel 垃圾回收算法,由参数 -XX:+UseParNewGC来控制
Old 区:只能使用Concurrent Mark Sweep
-XX:+UseParNewGC 年轻代使用parallel GC
 -XX:SurvivorRatio=8 -XX:SurvivorRatio在用的时候,如果设置成8,代表 -XX:SurvivorRatio:eden=2:8,如果设置成3,代表 -XX:SurvivorRatio:eden=2:3
-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为准.
-XX:MaxTenuringThreshold=31
在新生代中对象存活次数(经过Minor GC的次数)后仍然存活,就会晋升到旧生代。
<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 高流量调优所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部