Skip to content

Instantly share code, notes, and snippets.

@ykubota
Last active August 29, 2015 14:18
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ykubota/67c7f07dd93ef4a4c0f9 to your computer and use it in GitHub Desktop.
Save ykubota/67c7f07dd93ef4a4c0f9 to your computer and use it in GitHub Desktop.
JJUG CCC 2015 Spring、M-3 HeapStats: Javaトラブルシューティング ハンズオン の参加にあたっての前準備

JJUG CCC 2015 Spring

M-3 HeapStats: Javaトラブルシューティング ハンズオン への参加にあたって

本セッションは前半は HeapStats についての通常セッション、後半はハンズオン形式で HeapStats を実際に使用して簡単なトラブルシューティングを行う形式になっています。後半のハンズオンセッションは大きく以下の内容を実施します。

  1. HeapStats agent を利用して情報収集。
  2. 講師が用意した HeapStats 出力ファイルを元に、HeapStats analyzer を利用して解析。

このため、後半のハンズオンに参加される方は、十分に充電したノート PC をご持参頂く必要があります。

また、当日はインターネットが使えないため、OS に応じて以下の前準備をお願い致します。必要に応じて USB メモリ等で提供しますが、ハンズオン参加が大きく遅れる場合がありますので、ご協力をお願いします。

  • 全 OS 共通

  • HeapStats analyzer(zipファイル)をダウンロードしておく

  • HeapStats analyzer の動作に必要な 2 つのライブラリ(JGraphX, JFreeChart )をダウンロードしておく

  • (あれば) 解析したい Java アプリケーションを入れておく

  • Windows, Mac 系

  • これらの OS では HeapStats agent が動作しません。このため、ハンズオンの1.情報収集パートは実施できません

  • 1.情報収集パートを実施したい場合は、VirtualBox や VMWare などを利用して、仮想環境上に Linux を導入する必要があります

  • RedHat 系 (RHEL, CentOS, Fedora 等)

  • HeapStats agent を ここ からダウンロード(OS, アーキテクチャ(32bit/64bit)に応じてダウンロードして下さい。CentOSの場合はel6を選んで下さい)

  • 以下のコマンドを実行して各種パッケージをインストール。

# Java のインストール (devel, debuginfo パッケージを含む)
sudo yum --enablerepo="*debug*" install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel java-1.8.0-openjdk-debuginfo
# HeapStats 導入に必要なパッケージのインストール
sudo yum install -y pcre net-snmp binutils
#その他、HeapStats ビルドに必要なパッケージのインストール
sudo yum install -y pcre-devel net-snmp-devel binutils-devel gcc-c++ rpm-build
# HeapStats agent のダウンロード
## http://icedtea.wildebeest.org/download/heapstats/heapstats-1.1.2/bin/agent/ 
  • Debian 系 (Debian, Ubuntu 等)
  • HeapStats agent のバイナリが提供されていないので、自分でビルドする必要があります。以下のコマンドを実行して下さい。
# 全て root 権限持ちで実行する
apt-get install -y openjdk-7-jre openjdk-7-jdk
update-alternatives --config java # java 7 を選択する
update-alternatives --config javac # 同上
apt-get insatll -y libsnmp-base libsnmp-dev snmp
apt-get install -y libpcre3 libpcre3-dev binutils binutils-dev
apt-get install mercurial g++ 
hg clone http://icedtea.classpath.org/hg/release/heapstats-1.1
cd heapstats-1.1/agent/
./configure --with-jdk=/usr/lib/jvm/java-7-openjdk-amd64
# --with-jdk の値は jdk7 が配置されている場所を指定する
## update-alternatives --config java 確認できる
make
# Error がないことを確認する
java -agentpath=./src/.libs/libheapstats.so -version
# Error の文字が出ていないことを確認する

以上で準備は終わりです。お疲れ様でした! 当日お会いしましょう:)

質問などは @sugarlife 宛にメンションをお願い致します!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment