tomcat优化

简介:

从两方面入手
1. tomcat启动参数
打开\tomcat\bin\catalina.sh
export JAVA_OPTS="-server -Xms1400M -Xmx1400M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=128M -XX:MaxPermSize=256M -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true "


上述这样的配置,基本上可以达到:

系统响应时间增快
JVM回收速度增快同时又不影响系统的响应率
JVM内存最大化利用
线程阻塞情况最小化

参数解释:
-server Tomcat以server模式运行,将拥有更大、更高的并发处理能力,更快更强捷的JVM垃圾回收机制,可以获得更多的负载与吞吐量,生产环境必须加上。
-Xms –Xmx 一般设置这里两个值相等
–Xmn 年轻代[Sun官方推荐配置为整个堆的3/8]
-Xss 指设定每个线程的堆栈大小 一般是128k或者256k
-XX:+AggressiveOpts 启用这个参数,则每当JDK版本升级时,你的JVM都会使用最新加入的优化技术(如果有的话)
-XX:+UseBiasedLocking 启用一个优化了的线程锁,我们知道在我们的appserver,每个http请求就是一个线程,有的请求短有的请求长,就会有请求排队的现象,甚至还会出现线程阻塞,这个优化了的线程锁使得你的appserver内对线程处理自动进行最优调配。
-XX:PermSize=128M 非堆的初始值[物理内存的1/64]
-XX:MaxPermSize=256M 非堆的最大值[物理内存的1/4]
-XX:+DisableExplicitGC 程序代码中不允许有显示的调用”System.gc()”
-XX:+UseParNewGC 对年轻代采用多线程并行回收,这样收得快。
-XX:+UseConcMarkSweepGC 即CMS gc 我们知道频频繁的GC会造面JVM的大起大落从而影响到系统的效率,因此使用了CMS GC后可以在GC次数增多的情况下,每次GC的响应时间却很短,比如说使用了CMS GC后经过jprofiler的观察,GC被触发次数非常多,而每次GC耗时仅为几毫秒。
-XX:MaxTenuringThreshold 设置垃圾最大年龄
-XX:+CMSParallelRemarkEnabled 在使用UseParNewGC 的情况下, 尽量减少 mark 的时间
-XX:+UseCMSCompactAtFullCollection 在使用concurrent gc 的情况下, 防止 memoryfragmention, 对live object 进行整理, 使 memory 碎片减少
-XX:+UseFastAccessorMethods get,set 方法转成本地代码
-XX:LargePageSizeInBytes 指定 Java heap的分页页面大小


2. tomcat容器本身
打开tomcat安装目录\conf\server.xml文件,定位到这一行:
<connector port="8080" protocol="HTTP/1.1" <="" p="" style="word-wrap: break-word;">

URIEncoding="UTF-8"  minSpareThreads="25" maxSpareThreads="75"

# enableLookups="false" 消除DNS查询对性能的影响我们可以关闭DNS查询
enableLookups="false" disableUploadTimeout="true" connectionTimeout="20000"

#acceptCount是当线程数达到maxThreads后,后续请求会被放入一个等待队列,这个acceptCount是这个队列的大小,如果这个队列也满了,就直接refuse connection
#maxProcessors="2000"一般设置为2000
acceptCount="300"  maxThreads="300" maxProcessors="2000" minProcessors="5"

#可以减少它对一些url的不必要的检查从而减省开销。
useURIValidationHack="false"  

#给Tomcat配置gzip压缩(HTTP压缩)功能
compression="on" compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

redirectPort="8443"

/>
最后8443端口建议也设置成此配置,因为https会走8443端口。

本文转自屌丝逆袭博客51CTO博客,原文链接http://blog.51cto.com/5731674/2086790如需转载请自行联系原作者


_追随我心

相关文章
|
域名解析 缓存 安全
tomcat优化
tomcat优化
182 6
|
Java 应用服务中间件 Apache
Tomcat部署及优化
Tomcat部署及优化
233 0
|
6月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1140 5
|
算法 Java 应用服务中间件
|
缓存 安全 前端开发
(转)浅谈tomcat优化(内存,并发,缓存,安全,网络,系统等)
(转)浅谈tomcat优化(内存,并发,缓存,安全,网络,系统等)
251 0
|
Java 应用服务中间件 Linux
Tomcat 调优及 JVM 参数优化
Tomcat 调优及 JVM 参数优化
323 0
|
缓存 监控 Java
【建议收藏】Tomcat 优化总结
以上是V 哥整理的 Tomcat 优化的一些点,希望对你有所帮助,目前Tomcat已更新到11版本,你在项目中是使用哪个版本呢,如果有一些独到的优化策略,欢迎留言告诉我,感谢。
576 0
|
运维 Java 应用服务中间件
Nginx+Tomcat动静分离及Nginx优化(企业案例)
Nginx+Tomcat动静分离及Nginx优化(企业案例)
|
Java 应用服务中间件
优化tomcat的性能
优化tomcat的性能
130 0
|
缓存 Java 应用服务中间件
百度搜索:蓝易云【Tomcat 部署及优化详细教程!】
以上是Tomcat部署和优化的一些基本步骤和建议。请注意,在实际应用中,根据具体需求和环境,可能需要采取其他措施来进一步优化Tomcat的性能和安全性。建议参考Tomcat官方文档和相关资源,以获得更详细的信息和最佳实践。
234 4