jpsコマンドを実行したところ、以下の様に出力されました。
[foo@webotx ~]jps -v
xxxx -- process information unavailable
また、jstat実行時にも、以下の通り例外が発生し、異常終了しました。
[foo@webotx ~]jstat -gcutil 16000 250 1
Exception in thread "main" java.lang.OutOfMemoryError: Could not map PerfMemory
at sun.misc.Perf.attach(Native Method)
at sun.misc.Perf.attachImpl(Perf.java:253)
at sun.misc.Perf.attach(Perf.java:183)
at sun.jvmstat.perfdata.monitor.protocol.local.PerdDataBuffer.<init>(PerfDataBuffer.java:46)
at sun.jvmstat.perfdata.monitor.protocol.local.LocalMonitoredVm.<init>(LocalMonitoredVm.java:51)
at sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider.getMonitoredVm(MonitoredHostProvider.java:60)
at sun.tools.jstat.logSamples(Jstat.java:101)
at sun.tools.jstat.main(Jstat.java:55)
このエラーの原因を教えてください。
jps, jstat は監視対象の Java のアドレス空間を自プロセスにマッピングします。
しかし、監視対象の Java と jps, jstat の起動モードが 32/64 ビットと異なる場合にマッピングができずエラーになります。
この問題は jps, jstat に「-d64」オプションを指定することで回避されます。
Java 1.5.0.15 以降では、メモリ確保時に32/64ビットの両方のプロセス(jps, jstat 等)からアドレス空間をマッピングできるように Java のメモリ確保の方法が修正されています。
Java 1.5.0.15 以降のバージョンでは、jps、jstat に「-d64」オプションは不要です。
【対象製品】Application Server
【確認済みのバージョン】 V6.1 V6.2 V6.3 V6.4 V6.5 V7.1 V8.1 V8.2 V8.3
【確認済みのエディション】 すべて
【確認済みの対象OS】HP-UX
【確認済みのJavaバージョン】J2SE5.0
【コンポーネント】運用管理
【カテゴリー】トラブルシューティング