このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
Tag Cloud
このページへのアクセス
今日: 5 / 昨日: 1
総計: 680
- Dokuwiki.fl8.jp(215)
- 13 CentOS6メール設定(13)
- 02 ProFTPD(10)
- dig(9)
- 06 GitPrep(9)
最近の更新
このページへのアクセス
今日: 5 / 昨日: 1
総計: 680
jsp, jstatはava-1.8.0-openjdk-devel を入れれば入る。
ava-1.8.0-openjdk-devel
列 | 説明 |
---|---|
S0 | Survivor領域0(From)の使用率(現在の容量に対するパーセンテージ) |
S1 | Survivor領域1(To)の使用率(現在の容量に対するパーセンテージ) |
E | Eden領域の使用率(現在の容量に対するパーセンテージ) |
O | Old領域の使用率(現在の容量に対するパーセンテージ) |
P | Permanent領域の使用率(現在の容量に対するパーセンテージ) |
YGC | New領域のカベージ・コレクションの回数 |
YGCT | New領域のガベージ・コレクション時間(ミリ秒) |
FGC | 完全カベージ・コレクションの回数 |
FGCT | 完全ガベージ・コレクション時間 |
GCT | ガベージ・コレクション総時間(ミリ秒) |
こちらの人のシェルがめちゃくちゃ分かりやすくて感謝
#!/bin/sh
detected_javahome()
{
_PID=$1
JAVA_PATH=$(readlink -f `ps -o cmd= ${_PID} | awk '{print $1}'`) || {
echo "JAVA_HOME 特定出来ませんでした。"
exit 1
}
echo "`dirname "${JAVA_PATH}"`" | sed -e "s|/jre/bin|/bin|g"
}
java_version()
{
"${1}/java" -version 2>&1 | grep version | awk -F'"' '{print $2}' | awk -F'.' '{print $2}'
}
print_gcstat () {
_PID=$1
java_home="`detected_javahome ${_PID}`"
jstat_path="${java_home}/jstat"
if [ -e "${jstat_path}" ]; then
java_ver=`java_version "${java_home}"`
if [ ${java_ver} -gt 7 ]; then
"${jstat_path}" -gc ${_PID} | tail -1 | awk \
'{ \
printf "---------------------------------------------\n"; \
printf "S0 領域 | %7.2f / %7.2f (MB) | %5.2f%% \n" , $3/1024, $1/1024, ($3/$1 * 100); \
printf "S1 領域 | %7.2f / %7.2f (MB) | %5.2f%% \n" , $4/1024, $2/1024, ($4/$2 * 100); \
printf "Eden領域 | %7.2f / %7.2f (MB) | %5.2f%% \n" , $6/1024, $5/1024, ($6/$5 * 100); \
printf "Old 領域 | %7.2f / %7.2f (MB) | %5.2f%% \n" , $8/1024, $7/1024, ($8/$7 * 100); \
printf "Meta領域 | %7.2f / %7.2f (MB) | %5.2f%% \n" , $10/1024, $9/1024, ($10/$9 * 100); \
printf "CCPS領域 | %7.2f / %7.2f (MB) | %5.2f%% \n" , $12/1024, $1/1024, ($12/$11 * 100); \
printf "---------------------------------------------\n"; \
printf "YGC 回数 | %7d 回\n" , $13; \
printf "YGC 時間 | %7.2f 秒\n" , $14; \
printf "FGC 回数 | %7d 回\n" , $15; \
printf "FGC 時間 | %7.2f 秒\n" , $16; \
printf "---------------------------------------------\n"; \
}'
else
"${jstat_path}" -gc $1 | tail -1 | awk \
'{ \
printf "---------------------------------------------\n"; \
printf "S0 領域 | %7.2f / %7.2f (MB) | %5.2f%% \n" , $3/1024, $1/1024, ($3/$1 * 100); \
printf "S1 領域 | %7.2f / %7.2f (MB) | %5.2f%% \n" , $4/1024, $2/1024, ($4/$2 * 100); \
printf "Eden領域 | %7.2f / %7.2f (MB) | %5.2f%% \n" , $6/1024, $5/1024, ($6/$5 * 100); \
printf "Old 領域 | %7.2f / %7.2f (MB) | %5.2f%% \n" , $8/1024, $7/1024, ($8/$7 * 100); \
printf "Perm領域 | %7.2f / %7.2f (MB) | %5.2f%% \n" , $10/1024, $9/1024, ($10/$9 * 100); \
printf "---------------------------------------------\n"; \
printf "YGC 回数 | %7d 回\n" , $11; \
printf "YGC 時間 | %7.2f 秒\n" , $12; \
printf "FGC 回数 | %7d 回\n" , $13; \
printf "FGC 時間 | %7.2f 秒\n" , $14; \
printf "---------------------------------------------\n"; \
}'
fi
fi
}
PID=$1
ps ${PID} | grep [j]ava > /dev/null || {
_PID=`ps -o uid=,pid=,cmd= -C java | head -1 | awk '{print $2}'`
echo "---------------------------------------------"
ps -o uid,pid,cmd -C java
echo "---------------------------------------------"
echo -n "Please input the java process id (${_PID}): "
read PID
if [ -z "${PID}" ]; then
PID=${_PID}
fi
}
ps ${PID} | grep [j]ava > /dev/null && {
print_gcstat ${PID}
}
表示
---------------------------------------------
Please input the java process id (6291):
---------------------------------------------
S0 領域 | 0.00 / 112.00 (MB) | 0.00%
S1 領域 | 76.27 / 76.50 (MB) | 99.70%
Eden領域 | 174.78 / 2515.00 (MB) | 6.95%
Old 領域 | 2657.75 / 5461.50 (MB) | 48.66%
Meta領域 | 113.98 / 117.71 (MB) | 96.83%
CCPS領域 | 10.18 / 112.00 (MB) | 92.55%
---------------------------------------------
YGC 回数 | 206924 回
YGC 時間 | 41329.75 秒
FGC 回数 | 220 回
FGC 時間 | 495.27 秒
---------------------------------------------