修改$JBOSS_HOME/bin/run.conf文件
JAVA_OPTS="-Xms 520m -Xmx 1220m -Xss 15120k +XX:AggressiveHeap"
1. +XX:AggressiveHeap
1. +XX:AggressiveHeap
這使得 Xms 1220m沒有意義。這個參數讓jvm忽略Xmx參數,瘋狂地吃完一個G物理內存,再吃盡一個G的swap。
另外Xmx作為允許jvm使用的最大內存數量,不應該超過物理內存的90%。
而之所以使用了這個參數,是因為不加的話,JBoss會在運行一天左右的時間后迅速崩潰,甚至半個小時就崩潰。
2. -Xss 15120k
這使得JBoss每增加一個線程(thread)就會立即消耗15M內存,而最佳值應該是128K,默認值好像是512k.
這就是JBoss剛啟動時,還有200Mb內存富余,但會在一個小時內迅速用完,因為服務器的threads在迅速增加。前3天,每天都多吃80Mb左右的swap.在第四天開始穩定下來。原因是:服務器在線程到達100之后,一般不再增加新的線程,新增加的在用完之后,會被迅速destroy,1.25-2.10所使用的線程基本是1.21- 1.23創建的,因此沒有再消耗新的內存。服務器持續運行時間達到20天。
另外Xmx作為允許jvm使用的最大內存數量,不應該超過物理內存的90%。
而之所以使用了這個參數,是因為不加的話,JBoss會在運行一天左右的時間后迅速崩潰,甚至半個小時就崩潰。
2. -Xss 15120k
這使得JBoss每增加一個線程(thread)就會立即消耗15M內存,而最佳值應該是128K,默認值好像是512k.
這就是JBoss剛啟動時,還有200Mb內存富余,但會在一個小時內迅速用完,因為服務器的threads在迅速增加。前3天,每天都多吃80Mb左右的swap.在第四天開始穩定下來。原因是:服務器在線程到達100之后,一般不再增加新的線程,新增加的在用完之后,會被迅速destroy,1.25-2.10所使用的線程基本是1.21- 1.23創建的,因此沒有再消耗新的內存。服務器持續運行時間達到20天。
3. -Xms
指定初始化內存大小
作如下修改:
1.修改JAVA_OPTS,去掉+XX:AggressiveHeap,修改Xss。現在的JAVA_OPTS為:
-Xms 520m -Xmx 900m -Xss 128k
2.修改deploy/jbossweb-tomcat55.sar/service.xml
將maxThreads根據目前的訪問量由默認的250降為75,並加入2個參數: maxSparseThreads="55",minSparseThreads="25"
3.去掉了一些不用的服務。
1.修改JAVA_OPTS,去掉+XX:AggressiveHeap,修改Xss。現在的JAVA_OPTS為:
-Xms 520m -Xmx 900m -Xss 128k
2.修改deploy/jbossweb-tomcat55.sar/service.xml
將maxThreads根據目前的訪問量由默認的250降為75,並加入2個參數: maxSparseThreads="55",minSparseThreads="25"
3.去掉了一些不用的服務。