LoginSignup
5
4

More than 5 years have passed since last update.

Javaで負荷のかかっているプロセスから対象クラスを探してくれるプログラムを作ってみた

Posted at

はじめに

アプリケーションの負荷を調べるためにこの記事を試したところ
負荷をかけているプログラムが見つかりました。

ただ、毎度コマンド打つのが大変なのでプログラムで自動でだせるようにしました。
githubで公開してありますのでどなたかのお役に立てれば幸いです。
ささっと作ってしまったのでとりあえず感満載でなんですがご了承ください・・・

動作確認済み環境

CentOS 6.7
java8

実行方法

実行

対象システム内で以下を実行してください。
実行した直下のディレクトリにlogディレクトリが作成されてそこにログが出力されます。
アプリケーションと同じ権限での実行が必要かと思います。


java -jar check-java-process.jar 50 30 packageName

https://github.com/ewai/check-java-process/tree/master/build/libs
ここに置いてあるjarを使ってもいいですし、
eclipseにgradle projectとしてインポートして微調整して使ってもいいと思います。

パラメーター

# 設定値 default 尾行
1 CPU(%) 50 この設定値以上のプロセスを探す
2 処理時間(秒) 10 この設定値以上のプロセスを探す
3 keyword 無し stacktraceにこのキーワードが入っているプロセスのみログに出力します

プログラムで何をしているか

  1. javaのプロセスを探す
  2. 1のスレッドダンプを取得する
  3. 1の子プロセスを探す
  4. 2と3をマッチングして子プロセスごとのstacktraceを出す。
  5. パラメータの閾値を超えているプロセスのみにする。
  6. パラメータのキーワードを含むプロセスのみにする。
  7. ログに出力する。

以上です。

5
4
0

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
5
4