請問set JAVA_OPTS的各項參數是什么意思?


http://topic.csdn.net/u/20090910/10/20c6ba01-28ac-482e-94b2-bfce0a952f77.html

請問set JAVA_OPTS的各項參數是什么意思? 

比如以下的: 

set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=2 

希望從JVM的角度 去解釋 。

-Xms512m 堆的最小值 
-Xmx1024m 堆的最大值 
另外hotspot垃圾回收採用分代搜集的方法,把堆分為三個部分,新域,舊域和永久域。Jvm生成的全部新對象放在新域中。一旦對象經歷了一定數量的垃圾收集循環后,便獲得使用期並進入舊域。在永久域中jvm則存儲class和method對象。就配置而言,永久域是一個獨立域而且不覺得是堆的一部分 
-XX:MaxPermSize=2設置永久域的最大值, 
-XX:PermSize=256M設置永久域的初始值(你的樣例顯然有問題)

------------------------

 

JAVA_OPTS

比如:

-Xms512m -Xmx512m -XX:MaxPermSize=512m -XX:+AggressiveHeap

http://www.blogjava.net/yanzhou/archive/2006/09/13/69384.aspx

-Xms 520m -Xmx 1220m -Xss 15120k +XX:AggressiveHeap

1. +XX:AggressiveHeap會使得 Xms 1220m沒有意義。這個參數讓jvm忽略Xmx參數,瘋狂地吃完一個G物理內存,再吃盡一個G的swap。
另外Xmx作為同意jvm使用的最大內存數量,不應該超過物理內存的90%。
而之所以使用了這個參數,是由於不加的話,JBoss會在執行一天左右的時間后迅速崩潰,上機課是,甚至出現過半個小時就崩潰的情況。
之所以要用這個參數,用swap支持server執行,是由於犯了以下的錯誤:
2. -Xss 15120k 
這使得JBoss每添加一個線程(thread)就會馬上消耗15M內存,而最佳值應該是128K,默認值好像是512k.
這就是JBoss剛啟動時,還有200Mb內存富余,但會在一個小時內迅速用完,由於server的threads在迅速添加。前3天,每天都多吃80Mb左右的swap.在第四天開始穩定下來。今年春節在外度假,觀察到了這個現象,卻不理解其原因:server在線程到達100之后,一般不再添加新的線程,新添加的在用完之后,會被迅速destroy,??褂玫哪詿嬉不厥樟恕R虼耍?旁詿航諂詡洌?鄄斕椒?衿髟?1.25-2.10所使用的線程基本是1.21-1.23創建的,因此沒有再消耗新的內存。server持續執行時間,也因此大大超乎我5天的預期,到達了20天。

昨天所作的改動:
1.改動JAVA_OPTS,去掉+XX:AggressiveHeap,改動Xss。如今的JAVA_OPTS為:
-Xms 520m -Xmx 900m -Xss 128k
2.改動deploy/jbossweb-tomcat55.sar/service.xml
將maxThreads依據眼下的訪問量由默認的250降為75,並使用jboss 4默認未寫在標准service.xml里面而jboss 3寫入了的2個參數: maxSparseThreads=55,minSparseThreads=25
3.改動了oracle-ds.xml將最大連接數有150降為50.
4.去掉了一些不用的服務。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM