JBoss 3.2.7 を実行すると IOWait が高くなる

JBoss 3.2.7 を実行すると IOWait が高くなる

サーバーの詳細:
カーネル:Linux wiq31 2.4.21-9.ELsmp #1 SMP 木 1月 8日 17:08:56 EST 2004 i686 i686 i386 GNU/Linux
CPU:4 x Intel(R) Xeon(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」が表示されます。これらはスワップインおよびスワップアウトされたページです。

推測ですが、RAM を増やすことをお勧めしますが、まずは調査を進める必要があります。たとえば、大きなオブジェクトを多数デプロイしている場合は、jboss がこれらのオブジェクトをディスクからドラッグするまでしばらく待つ必要があるかもしれません。

関連情報