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

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

时间:2019-08-08 14:35:32  来源:  作者:
<a href=http://www.solves.com.cn/e/tags/?tagname=Tomcat target=_blank class=infotextkey>Tomcat</a>使用线程池配置高并发连接

 

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   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
1:配置executor属性打开/conf/server.xml文件,在Connector之前配置一个线程池:<Executor name="tomcatThreadPool" namePrefix="tomcatThreadPool-" maxThreads="1000" max...【详细内容】
2019-08-08   Tomcat  点击:(0)  评论:(0)  加入收藏
做项目的时候碰到一个问题,就是Tomcat在处理含有|,{,}的字符的Url时候,发现请求没有到达指定的Controller上面,而在Access_log中写入了get null null 400的错误信息,从网上也翻了...【详细内容】
2019-08-07   Tomcat  点击:(3)  评论:(0)  加入收藏
概述一般我们打算把一些服务,例如 mysql,tomcat,Nginx设置开机自启动的话一般是有三四种方式来实现,下面以mysql,tomcat,Nginx做例子来演示。一、使用定时任务 cron 命令创建定时...【详细内容】
2019-08-05   Tomcat  点击:(2)  评论:(0)  加入收藏
Tomcat7 的目录结构:1、bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat6.exe、tomcat6w.exe,前者是在控制台下启动Tomcat,后者是弹出UG...【详细内容】
2019-08-02   Tomcat  点击:(5)  评论:(0)  加入收藏
Tomcat是什么开源的 Java Web 应用服务器,实现了 Java EE(Java Platform Enterprise Edition)的部 分技术规范,比如 Java Servlet、Java Server Page、JSTL、Java WebSocket。...【详细内容】
2019-07-24   Tomcat  点击:(7)  评论:(0)  加入收藏
一、配置系统管理(Admin Web Application)大多数商业化的J2EE服务器都提供一个功能强大的管理界面,且大都采用易于理解的Web应用界面。Tomcat按照自己的方式,同样提供一个成熟...【详细内容】
2019-07-19   Tomcat  点击:(6)  评论:(0)  加入收藏
作者:编程迷思来源:http://www.cnblogs.com/kismetv/p/7228274.html前言Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。server.xml是Tomcat中最重要的配...【详细内容】
2019-07-03   Tomcat  点击:(11)  评论:(0)  加入收藏
一般是把 Apache服务器 与 tomcat服务器 搭配在一起用Apache服务器 负责处理所有 静态的 页面/图片 等信息。Tomcat 只处理动态的 部分。Apache:是C语言实现的,专门用来提供HT...【详细内容】
2019-06-17   Tomcat  点击:(70)  评论:(0)  加入收藏
一、Tomcat顶层架构先上一张Tomcat的顶层结构图(图A),如下: Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个Server可以包含至少一个Service,用于具体提供服...【详细内容】
2019-06-17   Tomcat  点击:(12)  评论:(0)  加入收藏
通俗点将,负载均衡就是因为访问流量太大,导致项目访问不流畅、甚至宕掉,所以通过一种分流的方式来缓解这种情况。 一、 工具nginx-1.8.0apache-tomcat-6.0.33二、 目标实现高性...【详细内容】
2019-04-28   Tomcat  点击:(37)  评论:(0)  加入收藏
推荐资讯
相关文章
栏目更新
栏目热门