參考:https://blog.csdn.net/wangfei0904306/article/details/59741236
javascript
參考: http://www.open-open.com/lib/view/open1401931407228.htmlcss
文中的PermSize、MaxPermSize已經不用要去掉,MaxTenuringThreshold最大隻能爲15html
參考:http://www.th7.cn/Program/java/201303/127995.shtmljava
windows系統在bin/catalina.bat文件中加入下面參數,對JVM進行優化 linux系統在catalina.sh文件下修改linux
在echo Using CATALINA_BASE: "%CATALINA_BASE%"的上面一行加下面代碼: apache
set JAVA_OPTS=
-server
-Xms4096M
-Xmx4096M #-Xms與-Xmx設成同樣的值,避免JVM由於頻繁的GC致使性能大起大落
-Xss512k
-XX:+AggressiveOpts
-XX:+UseBiasedLocking
-XX:+DisableExplicitGC
-XX:MaxTenuringThreshold=15
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-XX:+CMSParallelRemarkEnabled
-XX:+UseCMSCompactAtFullCollection
-XX:LargePageSizeInBytes=128m
-XX:+UseFastAccessorMethods
-XX:+UseCMSInitiatingOccupancyOnly
-Djava.awt.headless=true
echo Using JAVA_OPTS: %JAVA_OPTS%windows
linux系統在catalina.sh文件下修改less
JAVA_OPTS=' -server -Xms4096M -Xmx4096M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=15 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true';
-Xmx:java heap最大值,使用的最大內存
上面兩個值是分配JVM的最小和最大內存,取決於硬件物理內存的大小,建議均設爲物理內存的一半。
-XX:PermSize:設定內存的永久保存區域
-XX:MaxPermSize:設定最大內存的永久保存區域
-XX:MaxNewSize:
-Xss 15120 這使得JBoss每增長一個線程(thread)就會當即消耗15M內存,而最佳值應該是128K,默認值好像是512k.
+XX:AggressiveHeap 會使得 Xms沒有意義。這個參數讓jvm忽略Xmx參數,瘋狂地吃完一個G物理內存,再吃盡一個G的swap。
-Xss:每一個線程的Stack大小
-verbose:gc 現實垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日誌文件
-Xmn:young generation的heap大小,通常設置爲Xmx的三、4分之一
-XX:+UseParNewGC :縮短minor收集的時間
-XX:+UseConcMarkSweepGC :縮短major收集的時間jvm
二、Tomcat鏈接參數的優化,主要是針對吞吐量作優化:性能
參考 http://blog.csdn.net/centre10/article/details/50639693
修改conf/server.xml文件,把原來
<Connector port="8080" protocol="HTTP/1.1" />
改爲
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="8192" maxThreads="1000" minSpareThreads="100" maxSpareThreads="1000" minProcessors="100" maxProcessors="1000" enableLookups="false" compression="on" compressionMinSize="1024" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" connectionTimeout="25000" URIEncoding="utf-8" acceptCount="1000" redirectPort="8443" disableUploadTimeout="true" />