
伺服器詳細資訊:
核心:Linux wiq31 2.4.21-9.ELsmp #1 SMP 1 月 8 日星期四 17:08:56 EST 2004 i686 i686 i386 GNU/Linux
中央處理器:4 個英特爾(R) 至強(TM) CPU 3.06GHz
記憶:1028520 KB
JBoss版本:3.2.7
每次我嘗試啟動 JBoss 時,在所有 CPU 中,iowait 值開始上升,空閒值開始下降。
在執行我的 JBoss 應用程式之前,自由的命令返回以下輸出:
*total used free shared buffers cached
Mem: 1028520 966400 62120 0 187756 538928
-/+ buffers/cache: 239716 788804
Swap: 2044072 790672 1253400*
啟動我的 JBoss 應用程式後,自由的命令返回以下輸出:
*total used free shared buffers cached
Mem: 1028520 1007648 20872 0 187116 524084
-/+ buffers/cache: 296448 732072
Swap: 2044072 819096 1224976*
啟動 JBoss 應用程式後,在不回答任何請求的情況下,java 進程 /proc/PID/status 檔案具有以下值:
State: S (sleeping)
SleepAVG: 27%
Tgid: 24022
Pid: 24022
PPid: 21011
TracerPid: 0
Uid: 500 500 500 500
Gid: 500 500 500 500
FDSize: 256
Groups: 500
VmSize: 775200 kB
VmLck: 0 kB
VmRSS: 156752 kB
VmData: 696752 kB
VmStk: 36 kB
VmExe: 21 kB
VmLib: 710375 kB
StaBrk: 0804f000 kB
Brk: 095bb000 kB
StaStk: bffff8c0 kB
ExecLim: ffffffff
Threads: 62
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 1000000180015ccf
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
此行為是由記憶體交換引起的,還是伺服器中的可用記憶體不足以運行我的應用程式?
答案1
即使您沒有在其上運行任何程序,Jboss 本身也會佔用相當多的記憶體。
要查看您的系統是否頻繁交換,您可以隨時運行
vmstat 1
並觀察輸出。在“swap”下,您將看到“si”和“so”——這將是換入和換出的頁面。
我猜測我會建議更多的內存,但你真的應該先進行調查。例如,如果您部署了很多大對象,您可能只需要在 jboss 上等待一段時間即可將這些對象從磁碟中拖出。