标签:tomcat
从两方面入手上述这样的配置,基本上可以达到:
系统响应时间增快
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端口。
标签:tomcat
原文地址:http://blog.51cto.com/5731674/2086790