文档章节

tomcat 高流量调优

千惊万喜
 千惊万喜
发布于 2016/12/09 15:17
字数 947
阅读 40
收藏 4

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,有无双引号。

© 著作权归作者所有

共有 人打赏支持
千惊万喜
粉丝 4
博文 56
码字总数 15471
作品 0
海淀
程序员
有经验JAVA程序员如何提升自己?

具有一到五年开发经验 需要学习内容很多 JVM/分布式/高并发/性能优化/Spring MVC/Spring Boot/Spring Cloud/MyBatis/Netty源码分析等等等 01、透彻理解Tomcat原理手写动静态资源的实现 02、分...

阿阳啊啊
2017/11/29
0
0
成为Java GC专家系列

成为Java GC专家(1):深入浅出Java垃圾回收机制 成为Java GC专家(2):如何监控Java垃圾回收机制 成为Java GC专家(3):如何优化Java垃圾回收机制 成为Java GC专家(4):Apache的MaxClients参数...

HenrySun
2016/06/21
66
0
tomcat调优方案

一、操作系统调优 对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统...

蜡笔小小小新
2015/09/07
64
0
Tomcat 性能调优方案

一、操作系统调优 对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统...

华宰
2011/11/13
2.5K
2
深入浅出“JVM”性能优化

深入浅出“JVM”性能优化 理解性能优化 性能基准 性能优化到底是什么 衡量维度 JVM调优 知其然,知其所以然 详解什么是JVM运行时数据区 详解什么是JVM内存模型JMM 详解GC可达 详解各垃圾回收...

Java高级架构
2017/12/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

180.mariadb 主从复制

参考:https://blog.csdn.net/chengxuzaza/article/details/62042920 睡觉睡觉,明天写 1.效果 当主库中数据有变化的时候,从库就自动同步 2. 环境要求 至少两台 linux服务器 (教程:https...

Lucky_Me
5分钟前
0
0
erlng file id3v1 id3v1.1

%% ---%% Excerpted from "Programming Erlang",%% published by The Pragmatic Bookshelf.%% Copyrights apply to this code. It may not be used to create training material, %% ......

xueyuse0012
6分钟前
0
0
RabbitMq的安装

环境Centos6.5 32位 JDK 1.7.8 Jdk的卸载 rpm -qa|grep jdk yum –y remove 上边的安装包 JDK的安装 Rpm –ivh jdk安装包 配置环境变量 export JAVA_BIN=/usr/java/jdk1.7.0_80/bin export J......

DemonsI
10分钟前
0
0
http和https协议

HTTPS全称为Hypertext Transfer Protocol over Secure Socket Layer,中文含义为“超文本传输协议在安全加密字层”,简单来说就是加密数据传输,通俗的说就是安全连接。 HTTPS安全超文本传输...

寰宇01
16分钟前
0
0
vue内引入语音播报功能

在vue项目中引入语音播报,使用的科大讯飞语音接入, 具体思路为每次接收到语音信息后存入一个数组,然后监听这个数组,开始冲第一个索引播放,并且同时根据vuex getter 来动态删减数量 给a...

originDu
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部