本セッションは前半は HeapStats についての通常セッション、後半はハンズオン形式で HeapStats を実際に使用して簡単なトラブルシューティングを行う形式になっています。後半のハンズオンセッションは大きく以下の内容を実施します。
- HeapStats agent を利用して情報収集。
- 講師が用意した 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 宛にメンションをお願い致します!