新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 站长技术 > 服务器

Tomcat使用线程池配置高并发连接

时间:2019-08-08 14:35:32  来源:  作者:
Tomcat使用线程池配置高并发连接

 

1:配置executor属性

打开/conf/server.xml文件,在Connector之前配置一个线程池:

<Executor name="TomcatThreadPool" 
 namePrefix="tomcatThreadPool-" 
 maxThreads="1000" 
 maxIdleTime="300000" 
 minSpareThreads="200"/> 

重要参数说明:name:共享线程池的名字。这是Connector为了共享线程池要引用的名字,该名字必须唯一。默认值:None;namePrefix:在JVM上,每个运行线程都可以有一个name 字符串。这一属性为线程池中每个线程的name字符串设置了一个前缀,Tomcat将把线程号追加到这一前缀的后面。默认值:tomcat-exec-;maxThreads:该线程池可以容纳的最大线程数。默认值:200;maxIdleTime:在Tomcat关闭一个空闲线程之前,允许空闲线程持续的时间(以毫秒为单位)。只有当前活跃的线程数大于minSpareThread的值,才会关闭空闲线程。默认值:60000(一分钟)。minSpareThreads:Tomcat应该始终打开的最小不活跃线程数。默认值:25。

2:配置Connector

<Connector executor="tomcatThreadPool" 
 port="8088"
 protocol="HTTP/1.1" 
 connectionTimeout="20000" 
 redirectPort="8443" 
 minProcessors="5" 
 maxProcessors="75" 
 acceptCount="1000"/> 

重要参数说明:executor:表示使用该参数值对应的线程池;minProcessors:服务器启动时创建的处理请求的线程数;maxProcessors:最大可以创建的处理请求的线程数;acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

一.Tomcat内存优化

Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置JAVA_OPTS 参数。

1.JAVA_OPTS参数说明

-server 启用jdk 的 server 版; 
-Xms java虚拟机初始化时的最小内存; 
-Xmx java虚拟机可使用的最大内存; 
-XX:PermSize 内存永久保留区域 
-XX:MaxPermSize 内存最大永久保留区域 

现公司服务器内存一般都可以加到最大2G ,所以可以采取以下配置:

在cygwin=false前添加

JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'

配置完成后可重启Tomcat ,通过以下命令进行查看配置是否生效:

首先查看Tomcat 进程号:

lsof -i:8088

result

[root@izwz9ajtb45u2jzfp4ljixz ~]# lsof -i:8088
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 27698 root 46u IPv4 116945134 0t0 TCP *:radan-http (LISTEN)

我们可以看到Tomcat 进程号是27698 。

查看是否配置生效:

jmap –heap 27698

能在输出的信息中找到Heap Configuration中看到MaxHeapsize 等参数已经生效。

二.Tomcat并发优化

1.Tomcat连接相关参数

在Tomcat 配置文件 server.xml 中的 配置中

1.参数说明

minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为 10maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为 75acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 falseconnectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒。其中和最大连接数相关的参数为maxProcessors 和 acceptCount 。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常 windows 是 2000 个左右, linux是 1000 个左右。

2.Tomcat中的配置示例

<Connector port="8088"
 protocol="HTTP/1.1"
 maxHttpHeaderSize="8192"
 minProcessors="100"
 maxProcessors="1000"
 acceptCount="1000"
 redirectPort="8443"
 disableUploadTimeout="true"/>

2.调整连接器connector的并发处理能力

1.参数说明

maxThreads:客户请求最大线程数minSpareThreads:Tomcat初始化时创建的 socket 线程数maxSpareThreads:Tomcat连接器的最大空闲 socket 线程数enableLookups:若设为true, 则支持域名解析,可把 ip 地址解析为主机名redirectPort:在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口acceptAccount:监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )connectionTimeout:连接超时minProcessors:服务器创建时的最小处理线程数maxProcessors:服务器同时最大处理线程数URIEncoding:URL统一编码

2.Tomcat中的配置示例

<Connector port="8088"
 protocol="HTTP/1.1"
 maxHttpHeaderSize="8192"
 maxThreads="1000"
 minSpareThreads="100"
 maxSpareThreads="1000"
 minProcessors="100"
 maxProcessors="1000"
 enableLookups="false"
 URIEncoding="utf-8"
 acceptCount="1000"
 redirectPort="8443"
 disableUploadTimeout="true"/> 

3.Tomcat缓存优化

1.参数说明

compression:打开压缩功能compressionMinSize:启用压缩的输出内容大小,这里面默认为2KBcompressableMimeType:压缩类型connectionTimeout:定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间

2.Tomcat中的配置示例

<Connector port="8088"
 protocol="HTTP/1.1"
 maxHttpHeaderSize="8192"
 maxThreads="1000"
 minSpareThreads="100"
 maxSpareThreads="1000"
 minProcessors="100"
 maxProcessors="1000"
 enableLookups="false"
 compression="on"
 compressionMinSize="2048"
 compressableMimeType="text/html,text/xml,text/JavaScript,text/css,text/plain"
 connectionTimeout="20000"
 URIEncoding="utf-8"
 acceptCount="1000"
 redirectPort="8443"
 disableUploadTimeout="true"/> 

4.参考配置

1.旧有的配置

参考网络对服务器做过如下配置,拿出来分享下:

<Connector port="8088"
 protocol="HTTP/1.1"
 maxHttpHeaderSize="8192"
 maxThreads="1000"
 minSpareThreads="25"
 maxSpareThreads="75"
 enableLookups="false"
 compression="on"
 compressionMinSize="2048"
 compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
 connectionTimeout="20000"
 URIEncoding="utf-8"
 acceptCount="200"
 redirectPort="8443"
 disableUploadTimeout="true" /> 

后来发现在访问量达到3 百万多的时候出现性能瓶颈。

2.更改后的配置

<Connector port="8088"
 protocol="HTTP/1.1"
 maxHttpHeaderSize="8192"
 maxThreads="1000"
 minSpareThreads="100"
 maxSpareThreads="1000"
 minProcessors="100"
 maxProcessors="1000"
 enableLookups="false"
 compression="on"
 compressionMinSize="2048"
 compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
 connectionTimeout="20000"
 URIEncoding="utf-8"
 acceptCount="1000"
 redirectPort="8443"
 disableUploadTimeout="true"/> 


Tags:Tomcat   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
web.xml简介web.xml是web应用的基础配置文件,但又不是必须的。web.xml主要用来配置Filter、Listener、Servlet等。我们常用的框架多数都要通过web.xml文件进行配置后才能引入...【详细内容】
2019-12-19   Tomcat  点击:(6)  评论:(0)  加入收藏
随着每天业务的增长,Tomcat 的catalina.out日志 变得越来越大,占用磁盘空间不说。要查看某个时候的日志的时候,庞大的日志让你顿时无从下手,所以日志的切割的变得刻不容缓。而且,切割后的日志,还可以定期清理掉久远的日志…...【详细内容】
2019-12-19   Tomcat  点击:(7)  评论:(0)  加入收藏
Tomcat如何配置和优化,并不是每个工程师都需要掌握的内容。但如果你想成为一个架构师,就必须要学会本文的人内容了。在conf目录下存放着Tomcat的所有配置文件,而server.xml是其...【详细内容】
2019-12-18   Tomcat  点击:(4)  评论:(0)  加入收藏
一、配置Tomcat/conf/server.xml修改配置<connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443" URIEncoding...【详细内容】
2019-12-17   Tomcat  点击:(6)  评论:(0)  加入收藏