%Easerver%/bin目錄下 djc-seten.bat(
linux下為.sh),設置
set DJC_JVM_MAXHEAP=512M
set DJC_JVM_MINHEAP=256M
在easerver上碰到了OutOfMemory的問題,參考上面的解決辦法:
set DJC_JVM_MAXHEAP=512M
set DJC_JVM_MINHEAP=512M
啟動easerver6.0之后會發現進程之中有兩個java.exe和一個javaw.exe,如下圖所示:
則發現兩個java.exe進程分配內存都是512M左右,顯然有一些問題,這里怎么會有兩個相同的進程,并且兩個內存分配都是根據上面的配置來的,哪個是我們用的
從easerver文檔中發現,有另外一個地方可以配置jvm的啟動參數,即web控制臺如下圖所示的java Startup Options:

設置成如下圖所示的啟動參數:

然后重啟easerver,發現內存分配的變化如下:

顯然,兩個java進程,有一個的內存是根據開始的set配置確定的,另外一個是根據我們在控制臺配置。
我個人理解是:這兩個java進程,一個是easerver自己使用的,一個是我們發布程序使用的。
如果我們沒有在控制臺設置具體的jvm參數,則發布程序使用的jvm參數默認會和easerver自己使用的相同(即通過set設置的)
如果在easerver發布過程中碰到OutOfMemory,即發布本身需要很大的內存,比如包很大等等,修改set的那個jvm參數即可。
如果是我們的應用程序使用過程中OutOfMemory,則需要在控制臺直接設置jvm參數,控制比較精確(例如-server -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=128m)
另外根據easerver的文檔,好像set DJC_JVM_OPTIONS="-server -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=128m"
應該也可以的,但是我試了幾次(包括把引號去掉)都沒有成功……
總結一下:就是一般來說不用修改set的這個jvm啟動參數,使用默認配置即可,只需要根據實際情況到控制臺精確修改一下我們的應用程序使用的jvm參數。
posted on 2008-11-12 16:58
歲月如歌 閱讀(1071)
評論(1) 編輯 收藏 所屬分類:
java