JAVAの負荷確認方法(jps, jstat など)

環境
  • Ubuntu16.04を想定しています。他ののLinux dustributionでも、ほぼ変わらないはずです。

JAVAプロセスのCPU使用率の確認

手順

1. jpsコマンドを利用して、JAVAのプロセスIDを確認します。   ここでは、Bootstrapを見たいので、プロセスIDは1180になります。

# jps
21509 Jps
1180 Bootstrap
1774 jboss-modules.jar
  1. topコマンドを利用して、そのプロセスIDのCPU使用率を確認します。 ここでは、topコマンドの結果を60sごとに、ファイルに保存するコマンドになります。
top -p 1180 -b -d 60  |tee -a top_cpu
  1. topコマンドを一回だけ実行したいときは、-n 1オプションを指定します。
top -p 1180 -b -n 1

JAVAプロセスのヒープメモリ使用率の確認

手順

1. jpsコマンドを利用して、JAVAのプロセスIDを確認します。   ここでは、Bootstrapを見たいので、プロセスIDは1180になります。

# jps
21509 Jps
1180 Bootstrap
1774 jboss-modules.jar
  1. jstatコマンドを利用して、そのプロセスIDのheap使用率を確認します。 ここでは、jstatコマンドの結果を60sごとに、ファイルに保存するコマンドになります。
# jstat  -gc 1180  60000 |tee -a jstat_heap
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
37888.0 39936.0 3848.4  0.0   3262976.0 1572221.1  488448.0   63041.7   105088.0 100846.7 12928.0 12096.3     34    1.082   4      0.568    1.650
  1. 確保済み領域/使用済み領域の確認方法

確保済み領域 (9216.0[S0C] + 6144.0[S1C] + 30720.0[EC] + 40448.0[OC] + 27136.0[MC]) / 1024  = 111MB

使用済み領域の確認 (0.0[S0U] + 5895.0[S1U] + 17433.9[EU] + 16309.2[OU]) / 1024  = 38MB

見方はこちらを参考にさせていただきました。 qiita.com

 GCの起こし方

JAVAのプロセスID1180に対して、GCを起こす。

$ sudo -u tomcat  jmap -histo:live 1180