LoginSignup
1
0

More than 1 year has passed since last update.

docker上で動かしているjavaアプリが何か遅い気がするときに調べたことなど備忘録

Last updated at Posted at 2022-08-06

docker上で動かしているjavaアプリが何か遅い気がするとき、以下のような事をすればOKと思っている

マシン負荷を調べる(df -h, disk i/o, memory)

マシン負荷を調べる(df -h, disk i/o, memory, CPU, SSD/HDDかどうか)

実行中のDocker Containerのメモリ使用量を docker stats コマンドを使って調べる

https://docs.docker.com/engine/reference/commandline/stats/

javaアプリのヒープメモリが足りない場合は以下のように調べてみる

JVMのヒープメモリを確認する(jstat)
$ jps
1121 Jps
988 Bootstrap

  • 上のtomcat起動後、psコマンドでも出力された通り
  • PID988のJVM情報を取得します
  • -gccapacity オプションを付けてもいいかも jstat

gccapacity: 世代と対応する領域の容量に関する統計情報を表示します。

$ jstat -gc 988

S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU  >  CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
2560.0 2560.0 2540.0  0.0   32768.0  22237.8   44032.0    15113.8   16256.0 >15773.4 1920.0 1776.1      4    0.036   0      0.000    0.036

利用可能なjavaオプションは以下のようにすると出力可能となる

$ java -XX:+PrintFlagsFinal --version

ramに着目したい場合は以下のようにgrepすると良い

$ java -XX:+PrintFlagsFinal --version | grep -Ei "ram"

メモリサイズを増やす場合は以下のようにすればOK

$ java -XX:+PrintFlagsFinal -XX:MaxHeapSize=12g -version 

原因によって対策が異なると思うが例えば上記のようにすると解決することもある

参考

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0