Tomcat学习总结(15)—— Tomcat优化时的参数分析
(1)、maxHttpHeaderSize=”8192”
此选项用于配置:来自于客户端请求的Request和Response的HTTP header
的最大长度,以字节计算。如果不设置,该属性为4096(4K)。
(2)、maxThreads="512"
Connector创建的请求处理线程的最大值,它决定了能够同时处理并发请求的最
大值。如果不指定,该属性值为200。Tomcat的线程数量太多会导致切换过多,性能
下降严重。这个数量应该是你单个机器的承载能力,压力测试下得出的结果。不可任意
加大。一般情况下,256-512个已经非常高的数值了。
(3)、minSpareThreads="100"
tomcat初始化时创建的线程数,即最小工作线程数目。
(4)、maxSpareThreads="300"
tomcat所允许的最大线程数,一旦创建的线程超过这个数,Tomcat就将关闭不
再需要的Socket线程。
(5)、enableLookups="false"
使用允许DNS查询,通常情况下设置为false。如果为true则tomcat会损耗一
部分系统性能。
(6)、redirectPort="8443"
这里系统默认的,它指定转发端口,如果当前只支持non-SSL请求,在需要安全
通信的场所,将把客户请求转发至SSL的redirectPort端口。
(7)、acceptCount=“200”
当所有请求处理线程都被占用时,允许接收请求队列的最大长度。当队列已满时,
任何收到的请求都将被拒绝。缺省值为10。
(8)、connectionTimeout="50000"
Connector接收连接后,等待提供请求URI的时间,缺省值为60000(60秒)。
(9)、disableUploadTimeout="true"
该标志位表明当执行servlet时,是否允许servlet容器使用一个不同的、更长的
连接超时。启用该标志位将导致在上传数据时,要么使用更长的时间完成上传,要么
出现更长的超时。如果不指定,该属性为“false”。
(10)、有时不光要优化tomcat,同时还需要更改Linux的一些系统参数。如果WEB
服务器进行压力测试时报socket不足,则些可以对/etc/security/limits.conf进行相
应修改:
* soft nofile 57766
* hard nofile 65535
二、优化tomcat启动的初始内存设置($TOMCAT_HOME/bin/catalina.sh)
JAVA_OPTS="-server -Xms2048M -Xmx2048M -Xss128k -XX:+AggressiveOpts -XX:+UseParallelGC -XX:+UseBiasedLocking"
参数详解:
(1)、-Xms2048M
Java虚拟机初始化时使用的内存大小,为了减少tomcat频繁的申请内存,此参数
应该和Xmx设置的参数一样大。
(2)、-Xmx2048M
JAVA虚拟机可以使用的最大内存,此参数的最大设置不允许超过物理内存的90%。
(3)、-XX:+AggressiveOpts
加快编译
(4)、-Xss128k
设置tomcat每增加一个线程(Thread)就会立即消耗128K内存,最佳值应该是128,
默认值是512K。见意256K大小,这个对性能影响较大,需要多次测试。减少这个值可
以增加一个进程内的线程数量。
(5)、-XX:+UseParallelGC
一些测试表明当非64位系统,并且非高性能服务器时,这个选项会造成垃圾回收
变慢。(此选项决定对垃圾回收是否采用多线程)
(6)、-XX:+UseBiasedLocking"
非竞争性的同步选项,锁机制的性能改善。
(7)、-XX:PermSize=256m
最小堆大小,一般把内存不足时就是把这个空间不足。默认为物理内存的1/4。
(8)、-XX:+DisableExplicitGC
禁止System.gc(),免得程序员误调用gc方法影响性能。
下面给出见意设置:
JAVA_OPTS="-server -Xms512M -Xmx512M -Xss256k -XX:+AggressiveOpts -XX:+UseBiasedLocking"
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxHttpHeaderSize="8192"
minProcessors="100"
maxProcessors="5000"
maxThreads="5000"
minSpareThreads="1000"
maxSpareThreads="4000"
enableLookups="false"
acceptCount="3500"
disableUploadTimeout="true"
connectionTimeout="20000"
debug="0"
redirectPort="8443" />
maxThreads:Tomcat可创建的最大的线程数,每一个线程处理一个请求;
minSpareThreads:最小备用线程数,tomcat启动时的初始化的线程数;
maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭(应该有个超时时间吧,超时后关闭)不再需要的socket线程;
所以maxThreads决定了tomcat的最大线程阀值,需要设置的大一些
Tomcat学习总结(15)—— Tomcat优化时的参数分析的更多相关文章
- jQuery学习笔记之jQuery.fn.init()的参数分析
这篇文章主要介绍了jQuery.fn.init()的参数分析,需要的朋友可以参考下 从return new jQuery.fn.init( selector, context, rootjQuer ...
- Mybatis学习笔记15 - 两个内置参数_parameter和_databaseId
两个内置参数:除了方法传递过来的参数可以被用来判断,取值外,mybatis默认还有两个内置参数: _parameter:代表整个参数 单个参数:_parameter就代表这个单个参数 多个参数:参数会 ...
- Tomcat学习总结(3)——Tomcat优化详细教程
Tomcat是我们经常使用的 servlet容器之一,甚至很多线上产品都使用 Tomcat充当服务器.而且优化后的Tomcat性能提升显著,本文从以下几方面进行分析优化. 一.内存优化 默认情况下To ...
- Tomcat学习总结(11)——Linux下的Tomcat安全优化
1.web.xml配置及修改: 站点默认主页: <welcome-file-list> <welcome-file>index.html</welcome-file> ...
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB
JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...
- Tomcat 安全配置与性能优化
一.Tomcat内存优化 1.JAVA_OPTS参数说明 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OP ...
- Nginx与Tomcat安装、配置与优化
Nginx与Tomcat安装.配置与优化 Nginx与Tomcat安装.配置与优化 Nginx的安装与使用 Nginx是一款优秀的反向代理服务器 安装: rpm(或者是pkg安装),是预编译好的程序包 ...
- Tomcat 8.0的并发优化 - 优化server.xml的配置
目录 1 Tomcat的3种运行模式 1.1 BIO - 同步阻塞IO模式 1.2 NIO - 同步非阻塞IO模式 1.3 APR - 可移植运行时模式 2 Tomcat的并发配置(配置Connect ...
- Tomcat学习之ClassLoader
Tomcat学习之ClassLoader 2012-09-04 22:19 8993人阅读 评论(4) 收藏 举报 分类: WEB服务器(13) 版权声明:本文为博主原创文章,未经博主允许不得转载 ...
随机推荐
- 【python3+request】python3+requests接口自动化测试框架实例详解教程
转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...
- codeforces 877b
B. Nikita and string time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- 最大流最小割学习 基本知识 | 证明 | FF算法
可行流 : 能流过去就行,不一定是最大流. 最大流:能流到的最大流量.(可能不只一个) 解决最大流: Ford-Fulkerson方法 最小割:从图中去除一些边,使得源点S到汇点T不连通,去除的这些边 ...
- 调用azkaban接口,upload 本地zip文件
使用azkaban部署任务,可以将job文件打成zip包,通过web页面上传. 如图 但是当我们实践CI持续化部署的时候,要实现自动的部署上线. 这时就要调用azkaban提供的api. 地址如下:h ...
- 计算日期差(Python实现)
class Solution: def Days(self,year,month,day): if (year%4==0 and year%100!=0) or year%400==0: monthl ...
- redis-master/slave模式
类似mysql的master-slave模式一样,redis的master-slave可以提升系统的可用性,master节点写入cache后,会自动同步到slave上. 环境: master node ...
- C#读取excel文件提示未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
错误描述: 在VS2010执行读取excel文件时,报错"未在本地计算机上注册"Microsoft.ACE.OLEDB.12.0"提供程序" 业务代码: //下 ...
- WinForm中实现Loading加载界面
1,LoaderForm窗体中添加PictureBox,然后添加Loading图片 2,窗体内属性设置 StartPosition :CenterScreen在屏幕中心显示 TopMost:True置 ...
- 使用WPF制作视频监控多画面切换
前言 曾有做过一个产品,有一个功能是视频监控模块,视频监控首先想到的是视频多画面切换功能,由于前端是用WPF开发的,所以当时就做了一个多画面切换组件,效果如下: 功能设计前提: 由于要使用海康大华天地 ...
- WTS 2.1.18124.1 彻底抛弃了 15063(Win 10 创意者更新)
现在新建的WTS模板,默认最低版本是16299了,目标版本是17134 17134到来之前,就感觉到会这样,不过终究还是来了. 不支持15063的原因是导航菜单Windows.UI.Xaml.Cont ...