`
frank1998819
  • 浏览: 758535 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

Tomcat性能调优

 
阅读更多
一.Tomcat内存优化



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

1.JAVA_OPTS参数说明





Java代码 
1.-server  启用jdk 的 server 版; 
2.-Xms    java虚拟机初始化时的最小内存; 
3.-Xmx   java虚拟机可使用的最大内存; 
4.-XX:PermSize    内存永久保留区域 
5.-XX:MaxPermSize   内存最大永久保留区域  

服务器参数配置




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





Java代码 
1.JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m' 




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

1.  首先查看Tomcat 进程号:



Xml代码 
1.sudo lsof -i:9027 

 



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

1.  查看是否配置生效:



Xml代码 
1.sudo jmap  – heap 12222   

 

 

我们可以看到MaxHeapSize 等参数已经生效。、

二.Tomcat并发优化



1.Tomcat连接相关参数



在Tomcat 配置文件 server.xml 中的 <Connector ... /> 配置中



1.参数说明



minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为 10

maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为 75

acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100

enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false

connectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒。

其中和最大连接数相关的参数为maxProcessors 和 acceptCount 。如果要加大并发连接数,应同时加大这两个参数。

web server允许的最大连接数还受制于操作系统的内核参数设置,通常 Windows 是 2000 个左右, Linux 是 1000 个左右。



2.Tomcat中的配置示例






Xml代码 
1.<Connector port="9027"  
2. 
3.                protocol="HTTP/1.1" 
4. 
5.                maxHttpHeaderSize="8192" 
6. 
7.                minProcessors="100" 
8. 
9.                maxProcessors="1000" 
10. 
11.                acceptCount="1000" 
12. 
13.                redirectPort="8443" 
14. 
15.                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中的配置示例







Xml代码 
1.<Connector port="9027"  
2. 
3.                protocol="HTTP/1.1" 
4. 
5.                maxHttpHeaderSize="8192" 
6. 
7.                maxThreads="1000" 
8. 
9.                minSpareThreads="100" 
10. 
11.                maxSpareThreads="1000" 
12. 
13.                minProcessors="100" 
14. 
15.                maxProcessors="1000" 
16. 
17.                enableLookups="false" 
18. 
19.                URIEncoding="utf-8" 
20. 
21.                acceptCount="1000" 
22. 
23.                redirectPort="8443" 
24. 
25.                disableUploadTimeout="true"/> 
  
3.Tomcat缓存优化





1.参数说明



c ompression 打开压缩功能   

compressionMinSize   启用压缩的输出内容大小,这里面默认为2KB

compressableMimeType 压缩类型

connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间



2.Tomcat中的配置示例



Xml代码 
1.<Connector port="9027"  
2. 
3.                protocol="HTTP/1.1" 
4. 
5.                maxHttpHeaderSize="8192" 
6. 
7.                maxThreads="1000" 
8. 
9.                minSpareThreads="100" 
10. 
11.                maxSpareThreads="1000" 
12. 
13.                minProcessors="100" 
14. 
15.                maxProcessors="1000" 
16. 
17.                enableLookups="false" 
18. 
19.                compression="on" 
20. 
21.                compressionMinSize="2048"                
22. 
23.                compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 
24. 
25.                connectionTimeout="20000" 
26. 
27.                URIEncoding="utf-8" 
28. 
29.                acceptCount="1000" 
30. 
31.                redirectPort="8443" 
32. 
33.                disableUploadTimeout="true"/> 
  
4.参考配置



1.旧有的配置



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





Xml代码 
1.<Connector port="9027"  
2. 
3.protocol="HTTP/1.1"  
4. 
5.                maxHttpHeaderSize="8192" 
6. 
7.                maxThreads="1000" 
8. 
9.                minSpareThreads="25" 
10. 
11.                maxSpareThreads="75" 
12. 
13.                enableLookups="false" 
14. 
15.                compression="on" 
16. 
17.                compressionMinSize="2048" 
18.          
19.                compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 
20. 
21.                connectionTimeout="20000" 
22. 
23.                URIEncoding="utf-8" 
24. 
25.                acceptCount="200" 
26. 
27.                redirectPort="8443" 
28. 
29.                disableUploadTimeout="true" /> 
  
后来发现在访问量达到3 百万多的时候出现性能瓶颈。

2.更改后的配置







Xml代码 
1.<Connector port="9027"  
2. 
3.                protocol="HTTP/1.1" 
4. 
5.                maxHttpHeaderSize="8192" 
6. 
7.                maxThreads="1000" 
8. 
9.                minSpareThreads="100" 
10. 
11.                maxSpareThreads="1000" 
12. 
13.                minProcessors="100" 
14. 
15.                maxProcessors="1000" 
16. 
17.                enableLookups="false" 
18. 
19.                compression="on" 
20. 
21.                compressionMinSize="2048" 
22. 
23.                compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 
24. 
25.                connectionTimeout="20000" 
26. 
27.                URIEncoding="utf-8" 
28. 
29.                acceptCount="1000" 
30. 
31.                redirectPort="8443" 
32. 
33.                disableUploadTimeout="true"/> 
  
性能有待观察中 ……
分享到:
评论

相关推荐

    Tomcat性能调优方案

    一、操作系统调优 二、Java虚拟机调优 三、Apache集成Tomcat 四、Apache和Tomcat集群 五、Tomcat自身优化 六、APR库使用

    通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔.docx

    【标题】:“通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔.docx” 【描述】:本篇文档是关于如何优化Apache Tomcat以提升其性能,使它能够处理更高的并发用户量并实现性能显著提升的技术指南。作者提到...

    Tomcat性能调优实战总结

    【Tomcat性能调优实战总结】 Tomcat性能调优是一个涉及多方面技术的复杂过程,主要包括对外部环境的调整和Tomcat自身配置的优化。在实际应用中,我们需要通过压力测试来评估系统的性能表现,然后根据测试结果进行...

    Tomcat性能调优方案[参考].pdf

    Tomcat性能调优方案 一、操作系统调优 操作系统调优是指通过调整操作系统的设置来提高服务器的性能。对于操作系统优化来说,需要尽可能地增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。通过...

    使用visualvm工具进行tomcat性能调优和性能监控.docx

    使用 VisualVM 工具进行 Tomcat 性能调优和性能监控 本文主要介绍了如何使用 VisualVM 工具来进行 Tomcat 的性能调优和性能监控。下面将详细介绍相关知识点: 一、JDK 内存优化 在 Tomcat 中,默认的堆大小为 128...

    Tomcat性能调优及配置技巧

    ### Tomcat性能调优及配置技巧 #### 一、Tomcat设置Gzip,减少网络流量 Gzip是一种常用的压缩算法,通过将响应的数据进行压缩,可以显著减少数据在网络中的传输量,从而加快页面加载速度,提升用户体验。在Tomcat...

    Tomcat 调优及 JVM 参数优化

    这篇文章将深入探讨Tomcat调优与JVM参数优化的各个方面,帮助你提升服务器性能。 首先,我们来了解一下Tomcat调优的基础知识。Tomcat调优主要包括以下几个方面: 1. **线程池配置**:调整`maxThreads`和`...

    Tomcat7性能优化

    ### Tomcat7性能优化策略详解 #### 一、引言 在现代Web应用开发中,Tomcat作为一款广泛使用的开源...希望这些方法能够帮助开发者们更好地理解和掌握Tomcat性能优化的关键技术,从而为用户提供更加稳定高效的Web服务。

    tomcat7性能调优

    【Tomcat7性能调优】是一项关键的任务,它关乎服务器的稳定性和响应速度。Tomcat作为流行的Java应用服务器,其性能优化能显著提升应用程序的运行效率。本文将深入探讨如何针对Tomcat7进行调优。 首先,我们关注的是...

    一线JAVA架构师必备 JVM调优+Tomcat性能调优+MySQL深度优化+并发+分布式+微服务+资料

    课程内容包括了JVM性能调优专题,Tomcat性能优化实战,MySQL深度优化,并发编程,源码框架专题,分布式缓存技术Redis,分布式协调任务ZooKeeper,分布式协调任务ZooKeeper,Kafka mongodb sharding-sphere,Netty...

    Tomcat优化-Tomcat 的性能调优的原理和方法

    本文旨在介绍Tomcat性能调优的基本原理与具体实施方法,帮助技术人员更好地理解和优化Tomcat,提升其在各种应用场景下的性能表现。 #### 二、调优分类 由于Tomcat的运行高度依赖于Java虚拟机(JVM),我们可以将其...

Global site tag (gtag.js) - Google Analytics