|
站在人群,我毫不起眼;活在世上,我不玩心眼! 沒有那么遠大的目標,但是也不要把我當成傻子!
--胖先生 |
放在前面要說的話: -Xmx Java Heap最大值,默認值為物理內存的1/4; -Xms Java Heap初始值,Server端JVM最好將-Xms和-Xmx設為相同值,開發測試機JVM可以保留默認值; -Xmn Java Heap Young區大小,不熟悉最好保留默認值; -Xss 每個線程的Stack大小,不熟悉最好保留默認值; -XX:PermSize:設定內存的永久保存區域; -XX:MaxPermSize:設定最大內存的永久保存區域; -XX:PermSize:設定內存的永久保存區域; -XX:NewSize:設置JVM堆的'新生代'的默認大小; -XX:MaxNewSize:設置JVM堆的'新生代'的最大大小; |
參考: http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html |
-
Eclipse中設置JDK的內存方式
為什么要設置JDK的內存呢?
方式一:有可能的情況是Tomcat的內存溢出了,我需要設置如下的參數[關於下面的設置,需要根據你電腦的內存地址來設置]
-Xms512M -Xmx1024M -XX:PermSize=512m -XX:MaxPermSize=1024m |
對JDK的內存設置操作過程如下
|
效果如下: |
但是我發現,啟動時間別配置之前慢了一些!
方式二:增加JDK的內存的方法,直接在jdk下面的optional java vm arguments; 設置參數
|
-
當你感覺你的Eclipse 啟動數據比較慢的時候,可以設置如下的屬性
如果使用eclipse的話,那么在解壓的根目錄中找到eclipse.ini
如果使用sts的話,那么在根目錄中找到STS.ini
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M |
注:這里的所有的JVM的參數是有設定規則的,補充內容中含有
-
增加Tomcat 的內存方式
tomcat默認可以使用的內存為128MB,在較大型的應用項目中,這點內存是不夠的,需要調大。
-
linux下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下設置:
SET JAVA_OPTS=-Xms512m -Xmx1024m
-
windows下,在tomcat_home}/bin/catalina.bat的前面,增加如下設置:
SET JAVA_OPTS=-Xms512m -Xmx1024m
注:表示初始化內存為512MB,可以使用的最大內存為1024MB
-
對Tomcat的優化操作[來源自網絡]
(1) 在bin/catalina.bat文件中加入下面參數,對JVM進行優化,至於這一大駝參數的作用及說明,
請查看文檔: http://www.mzone.cc/article/321.html
JAVA_OPTS="-server -showversion -Xms1000M -Xmx1000M -XX:PermSize=256m -XX:MaxPermSize=256m" JAVA_OPTS="$JAVA_OPTS -d64 -XX:CICompilerCount=8 -XX:+UseCompressedOops" JAVA_OPTS="$JAVA_OPTS -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90" JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=256m -XX:-UseAdaptiveSizePolicy" JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Shanghai -XX:-DontCompileHugeMethods" JAVA_OPTS="$JAVA_OPTS -Xss256k -XX:+AggressiveOpts -XX:+UseBiasedLocking" JAVA_OPTS="$JAVA_OPTS -XX:MaxTenuringThreshold=31 -XX:+CMSParallelRemarkEnabled " JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=256m -XX:+UseFastAccessorMethods" JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true" JAVA_OPTS="$JAVA_OPTS -XX:+UseGCOverheadLimit -XX:AllocatePrefetchDistance=256 -XX:AllocatePrefetchStyle=1" JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:MaxGCPauseMillis=200" |
上述這樣的配置,基本上可以達到:
|
-Xms=-Xmx=服務器內存*70% |
(2) Tomcat連接參數的優化,主要是針對吞吐量做優化:
修改conf/server.xml文件,把原來
<Connector port="8080" protocol="HTTP/1.1" /> |
修改內容如下:
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" connectionTimeout="20000" acceptCount="300" maxThreads="300" maxProcessors="1000" minProcessors="5" useURIValidationHack="false" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" redirectPort="8443"/> |
一段補充說明:
搜索【<Executor name="tomcatThreadPool"】,開啟並調整為 <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1000" maxIdleTime="60000" minSpareThreads="20"/> 搜索【port="8080"】,調整為 <Connector port="8080" executor=" tomcatThreadPool" //開啟線程池 protocol="org.apache.coyote.http11. Http11AprProtocol" //我們沒有安裝: 開啟Apr協議,需要安裝Apr支持 maxHttpHeaderSize="8192" maxThreads="1000" processorCache="1000" acceptCount="1000" minSpareThreads="100" acceptorThreadCount="8" URIEncoding="UTF-8" enableLookups="false" redirectPort="8443" //關閉反向查詢 connectionTimeout="120000" keepAliveTimeout="120000" maxKeepAliveRequests="65535" disableUploadTimeout="true" compression="on" compressionMinSize="4096" //開啟靜態文件壓縮 noCompressionUserAgents="gozilla, traviata" //開啟靜態文件壓縮 compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json,appli cation/x-javascript " //開啟靜態文件壓縮 /> |
可以通過java/jdk/bin下的java visualVM查看eclipse的內存大小和tomcat的內存大小,主要看堆,PermGen兩個大小,如圖:
胖先生的微信 |
感覺該文章對你有所幫助,請點擊下方的
|
|