【 Tomcat 】tomcat8.0 调优配置

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1、优化内核及TCP连接:

fs.file-max = 655350  # 系统文件描述符总量

net.ipv4.ip_local_port_range = 1024 65535  # 打开端口范围

net.ipv4.tcp_max_tw_buckets = 2000  # 设置tcp连接时TIME_WAIT个数
net.ipv4.tcp_tw_recycle = 1  # 开启快速tcp TIME_WAIT快速回收
net.ipv4.tcp_tw_reuse = 1  # 开启TIME_WAIT重用
net.ipv4.tcp_syncookies = 1  # 开启SYN cookies 当出现syn等待溢出,启用cookies来处理,可防范少量的syn攻击
net.ipv4.tcp_syn_retries = 2  # 对于一个新建的tcp连接,内核要发送几个SYN连接请求才决定放弃
net.ipv4.tcp_synack_retries = 2  # 这里是三次握手的第二次连接,服务器端发送syn+ack响应 这里决定内核发送次数
net.ipv4.tcp_keepalive_time = 1200  # tcp的长连接,这里注意:tcp的长连接与HTTP的长连接不同
net.ipv4.tcp_fin_timeout = 15    # 设置保持在FIN_WAIT_2状态的时间
net.ipv4.tcp_max_syn_backlog = 20000  # tcp半连接最大限制数
net.core.somaxconn = 65535  # 定义一个监听最大的队列数
net.core.netdev_max_backlog = 65535  # 当网络接口比内核处理数据包速度快时,允许送到队列数据包的最大数目

保存退出
[root@cloud ~]# sysctl -p   # 添加生效

 

2、修改Tomcat Connector运行模式为apr

Tomcat Connector有三种运行模式:

    bio:阻塞IO bio是三种运行模式中性能最低第一种。

    nio:是一个基于缓冲区,并能提供非阻塞I/O操作的JAVA API 因此NIO也成为非阻塞I/O,比bio拥有更好的并发性能。

    apr:调用httpd核心链接库来读取或文件传输,从而提高tomat对静态文件的处理性能。Tomcat APR模式也是Tomcat在高并发下的首选运行模式:

[root@server3 src]# java -version    # 请确保JDK版本的正确性
java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)
# 安装apr、apr-util、tomcat-native.tar.gz
[root@server3 src]# wget http://apache.fayea.com//apr/apr-1.5.2.tar.gz
[root@server3 src]# wget http://apache.fayea.com//apr/apr-util-1.5.4.tar.gz
[root@server3 apr-1.5.2]# cd apr-1.5.2
[root@server3 apr-1.5.2]# vim configure    #查找 $RM "$cfgfile" 这个地方,用#注释掉,然后就可以了
[root@server3 apr-1.5.2]# ./configure --prefix=/usr/local/apr 
[root@server3 apr-1.5.2]# make && make install
[root@server3 apr-1.5.2]# cd ..
[root@server3 src]# tar xf apr-util-1.5.4.tar.gz 
[root@server3 src]# cd apr-util-1.5.4
[root@server3 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@server3 apr-util-1.5.4]# make && make install
[root@server3 apr-util-1.5.4]# ll /usr/local/apr*
/usr/local/apr:
total 16
drwxr-xr-x. 2 root root 4096 Apr 24 08:20 bin/
drwxr-xr-x. 2 root root 4096 Apr 24 08:20 build-1/
drwxr-xr-x. 3 root root 4096 Apr 24 08:20 include/
drwxr-xr-x. 3 root root 4096 Apr 24 08:20 lib/

/usr/local/apr-util:
total 12
drwxr-xr-x. 2 root root 4096 Apr 24 08:23 bin/
drwxr-xr-x. 3 root root 4096 Apr 24 08:22 include/
drwxr-xr-x. 3 root root 4096 Apr 24 08:23 lib/
[root@server3 apr-util-1.5.4]# cp -a /usr/local/tomcat8.0/bin/tomcat-native.tar.gz /usr/local/src/
[root@server3 apr-util-1.5.4]# cd !$
cd /usr/local/src/
[root@server3 src]# tar xf tomcat-native.tar.gz 
[root@server3 src]# cd tomcat-native
tomcat-native-1.2.5-src/ tomcat-native.tar.gz     
[root@server3 src]# cd tomcat-native-1.2.5-src/
[root@server3 tomcat-native-1.2.5-src]# cd native/

[root@server3 native]# ./configure --prefix=/usr/local/apr --with-java-home=/usr/local/jdk1.8/
[root@server3 native]# make && make install
[root@server3 native]# vim /etc/profile.d/apr.sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
:wq
[root@server3 native]# source /etc/profile.d/apr.sh

[root@server3 bin]# sh shutdown.sh
[root@server3 bin]# sh startup.sh
[root@server3 bin]# tail ../logs/catalina.out 
24-Apr-2016 08:42:20.319 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat8.0/webapps/ROOT has finished in 39 ms
24-Apr-2016 08:42:20.320 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat8.0/webapps/examples
24-Apr-2016 08:42:20.713 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat8.0/webapps/examples has finished in 393 ms
24-Apr-2016 08:42:20.717 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat8.0/webapps/manager
24-Apr-2016 08:42:20.799 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat8.0/webapps/manager has finished in 82 ms
24-Apr-2016 08:42:20.799 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat8.0/webapps/docs
24-Apr-2016 08:42:20.835 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat8.0/webapps/docs has finished in 36 ms
24-Apr-2016 08:42:20.843 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]  # 通过查看启动日志,tomcat运行模式已经切换到APR。
24-Apr-2016 08:42:20.872 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"]
24-Apr-2016 08:42:20.877 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1090 ms

 

三、Tomcat内存优化:

Tomcat内存优化主要是对tomcat启动参数优化,可以修改catalina.sh中设置JAVA_OPTS参数

    1.JAVA_OPTS参数说明

 

-server  启用jdk 的 server 版;  -Xms    java虚拟机初始化时的最小内存;  -Xmx   java虚拟机可使用的最大内存;

配置如下:

[root@server3 bin]# vim /usr/local/tomcat8.0/bin/catalina.sh97行 JAVA_OPTS='-server -Xms1024m -Xmx1024m'

四、Tomcat并发优化

  1、Tomcat配置文件server.xml中<Connector .../> 

  2、参数说明:

minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为 10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为 75
acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100
enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false
connectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒。
其中和最大连接数相关的参数为maxProcessors 和 acceptCount 。如果要加大并发连接数,应同时加大这两个参数。
web server允许的最大连接数还受制于操作系统的内核参数设置,通常 Windows 是 2000 个左右, Linux 是 1000 个左右。 maxThreads  客户请求最大线程数
minSpareThreads    Tomcat初始化时创建的 socket 线程数
maxSpareThreads   Tomcat连接器的最大空闲 socket 线程数
enableLookups      若设为true, 则支持域名解析,可把 ip 地址解析为主机名
redirectPort        在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
acceptAccount       监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads  )
connectionTimeout   连接超时
minProcessors         服务器创建时的最小处理线程数
maxProcessors        服务器同时最大处理线程数
URIEncoding    URL统一编码
<Connector port="8080" protocol="HTTP/1.1"maxThreads="1000"minProcessors="100"maxProcessors="1000"minSpareThreads="100"maxSpareThreads="1000"enableLookups="false"URIEncoding="utf-8"acceptCount="1000"connectionTimeout="20000"disableUploadTimeout="ture"redirectPort="8443" />

 

 

转载于:https://my.oschina.net/u/2343310/blog/731168

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293337.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转]ORACLE 异常错误处理

本文转自&#xff1a;http://www.cnblogs.com/soundcode/archive/2012/01/10/2318385.html 本篇主要内容如下&#xff1a; 5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4 用户定义的异常处理 5.2 异常错误传播 5.2.1 在…

abb机器人指令手册_第1519课 ABB机器人初级教程

每一位读者都是我分享的动力&#xff0c;感谢大家关注&#xff01;第15课 系统输入输出与IO信号的关联第16课 示教器可编程按钮的使用第17课 什么是程序数据第18课 程序数据的类型与分类第19课 创建程序数据第15课第16课第17课第18课第19课每一位读者都是我分享的动力&#xff…

Java学习笔记之 IO包 字符流

字符流&#xff1a;Writer/Reader(字符流) 通过子类FileWriter和FileReader实现父类实例化 package iotest; import java.io.File; import java.io.Writer; import java.io.Reader; import java.io.FileWriter; import java.io.FileReader; public class OutputStreamDemo2 { p…

ci框架(二)

自定义SQL语句 当提供的API满足不了我们对SQL语句的要求的时候&#xff0c;我们通常是自己来写SQL语句&#xff0c;CI也提供了比较强大了&#xff0c;能够满足我们需求的一般的sql的API。 $res$…

到底该不该使用存储过程

百度百科对存储过程的定义存储过程&#xff08;Stored Procedure&#xff09;是在大型数据库系统中&#xff0c;一组为了完成特定功能的SQL 语句集&#xff0c;它存储在数据库中&#xff0c;一次编译后永久有效&#xff0c;用户通过指定存储过程的名字并给出参数&#xff08;如…

智能卡门禁管理系统_汉中停车场智能门禁系统简介,保安服务收费,行业知识

首页 > 新闻列表 > 正文作者&#xff1a;佚名 点击数&#xff1a; 5更新时间&#xff1a;2020-11-04 08:21:21 导读&#xff1a;名将安防为您提供汉中停车场智能门禁系统简介,保安服务收费的相关知识与详情&#xff1a; 接警时&#xff0c;系统自动调出预警方案&#xf…

推荐系统中协同过滤算法实现分析

原创博客&#xff0c;欢迎转载&#xff0c;转载请注明&#xff1a;http://my.oschina.net/BreathL/blog/62519 最近研究Mahout比较多&#xff0c;特别是里面协同过滤算法&#xff1b;于是把协同过滤算法的这个实现思路与数据流程&#xff0c;总结了一下&#xff0c;以便以后对系…

老黄的2021

0x01 21年怎么说呢&#xff0c;平淡中带点惊喜。21年在现在的公司待满 2 年了&#xff0c;仔细想想&#xff0c;还真是&#xff0c;这是第一个待满 2 年的公司。这一年&#xff0c;有了很多的挑战&#xff0c;业务上的&#xff0c;技术上的&#xff0c;管理上的都是。下半年开始…

document.elementFromPoint

先说一下这个方法的参数 elemntFromPoint(x,y);//传入坐标值&#xff0c;返回当前页面上包含该坐标点的顶层元素 注意2点&#xff0c;坐标值和顶层元素 先说坐标&#xff0c;因为不同的人理解是不一样的&#xff0c;也就造就了这个方法在不同的浏览器中表现是不一样的&#xff…

iis6 开启options方法_《王者荣耀》暗夜危机什么时候开启 暗夜危机开启时间

导读 王者荣耀神秘关卡暗夜危机怎么进&#xff1f;许多玩家对于这个暗夜危机的关卡还不太熟悉&#xff0c;不知道如何开启&#xff0c;下面就让九游小编为大家带来&#xff0c;王者荣耀暗夜危机开启方法介绍。 王者荣耀神秘关卡暗夜危机怎么进&#xff1f; 峡谷异闻... 王者荣耀…

全球顶级大学,在中国录取率却不足0.5%,答案一针见血!

▲点击查看一提起新加坡教育&#xff0c;恐怕大家的第一反应都是&#xff1a;特别牛&#xff01;到底有多牛呢&#xff1f;我们拿数据说话——在全球公认的学生能力测试中&#xff0c;新加坡数学屡屡夺魁&#xff01;在“国际数学和科学评测趋势报告 2019”&#xff08;TIMSS&a…

div+css+js 树形菜单

2019独角兽企业重金招聘Python工程师标准>>> 代码&#xff1a; <div class"main_2"> <div class"m_left"> <ul class"nav"> <li id"bottom_none"><a href"#" onClick"DoMenu(C…

马化腾最崇拜的作家吴晓波《历代经济变革得失》读书笔记

吴晓波先生&#xff0c;是马化腾最崇拜的作家&#xff0c;腾讯的朋友说&#xff0c;马化腾逢人便推荐吴晓波的写的书《历代经济变革得失》&#xff0c;并亲自指示腾讯视频免费推广这个视频讲座。这本书我通读了两遍&#xff0c;总结了如下的笔记&#xff1a;

SQL:认识数据库约束

讲了关于数据库的很多内容&#xff0c;也讲了很多约束&#xff0c;对唯一和主键、核查和规则、外键约束很感兴趣。 一、唯一和主键&#xff08;实体完整性&#xff09;区别&#xff1a;数量&#xff1a;一张表只可以有一个主键约束&#xff0c;却可以有多个唯一约束。是否空值&…

Android之使用IDA Pro静态分析so文件

安卓应用程序的开发语言是java&#xff0c;但是由于java层的代码很容易被反编译&#xff0c;而反编译c/c程序的难度比较大&#xff0c;所以现在很多安卓应用程序的核心部分都使用NDK进行开发。关于NDK的开发知识点&#xff0c;请看这篇博客&#xff1a;Android之NDK开发。 关于…

.NET 6 中的 Logging Source Generator

.NET 6 中的 Logging Source GeneratorIntroLogging source generator 是 .NET 6 引入的一个新功能&#xff0c;借助 Source Generator 来实现&#xff0c;因为要用到 C# 9 中的分部方法(partial method)&#xff0c;C# 语言需要使用 9 及以上版本&#xff0c;具有更好的性能以…

电脑内部录音教程Virtual Audio Cable使用教程

1:下载Virtual Audio Cable2&#xff1a;安装Virtual Audio Cable3&#xff1a;设置&#xff08;注意这里line1不要开启监听其他设备&#xff09;3&#xff1a;打开声音传输通道软件C:\Program Files\Virtual Audio Cable\audiorepeater.exe点击start启动&#xff0c;最小化。4…

战队口号霸气押韵8字_高考励志班级口号霸气押韵大全

【导语】高考没有什么可怕的&#xff0c;一定要保证心态好&#xff0c;就可能考出比平时更好的成绩。下面是无忧考网分享的高考励志班级口号霸气押韵大全。欢迎阅读参考&#xff01;【篇一】高考励志班级口号霸气押韵1.激情澎湃&#xff0c;高考不败&#xff0c;斗志昂扬&#…