CentOS5.xでdstatの–top-ioオプションを使う

■CentOS5.xでdstatの–top-ioオプションを使う
CentOS5.xで極短時間でもI/O負荷を上げているプロセスを特定する方法としてdstatを使うことでそれが可能です。しかしdstatの–top-ioオプションはketnel2.6.20以上が必要で、CentOS5.x標準のkernel2.6.18では利用できません。そこでCentOS5.xでもそれを利用する方法を調べてみました。

dstat
http://dag.wieers.com/home-made/dstat/dstat.1.html

今回はELrepoというハードウェアリポジトリから3.0系のkernelを導入します。
ELrepoはCentOS/RedHat用のリポジトリで、既存のソフトウェアパッケージ群と整合性があります。kernelアップデートしても既存のソフトウェアが勝手にバージョンアップされることはありません。

[code]# rpm -ivh http://elrepo.org/elrepo-release-5-4.el5.elrepo.noarch.rpm
# vi /etc/yum.repos.d/elrepo.repo

[elrepo-kernel]
name=ELRepo.org Community Enterprise Linux Kernel Repository – el5
baseurl=http://elrepo.org/linux/kernel/el5/$basearch/
mirrorlist=http://elrepo.org/mirrors-elrepo-kernel.el5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0

# yum update
# yum install kernel-lt kernel-lt-devel
[/code]

kernel3.0で起動するとudevの起動時にエラーメッセージが出るので以下を修正。
[code]
# vi /etc/udev/rules.d/05-udev-early.rules
ACTION==”add”, SUBSYSTEM==”scsi”, WAIT_FOR_SYSFS=”ioerr_cnt”
 ↓
#ACTION==”add”, SUBSYSTEM==”scsi”, WAIT_FOR_SYSFS=”ioerr_cnt”

※iscsiが使われていないこと。iscsiを有効のまま使う場合は以下。
ACTION==”add”, SUBSYSTEM==”scsi”, KERNEL==”[0-9]*:[0-9]*”, WAIT_FOR_SYSFS=”ioerr_cnt”

# reboot
[/code]

起動画面で3.0kernel選択、起動後に起動kernelを確認する。
[code]
# uname -r
3.0.66-1.el5.elrepo を確認
[/code]

これでdstatのフル機能が利用できるようになります。
dstatは最新版をインストールします。
[code]
# wget http://dag.wieers.com/home-made/dstat/dstat-0.7.2.tar.bz2
# tar jxvf dstat-0.7.2.tar.bz2
# cd dstat-0.7.2
# ./dstat -alt –top-io –top-bio –top-cpu –top-cputime –top-cputime-avg –top-mem
[/code]

各ディスクやネットワーク単位でトラフィックを取得する場合
[code]# ./dstat -cdnlt -N eth0,eth1,total -D sda1,sda2,sda3,total –top-io –top-bio –top-cpu –top-cputime –top-cputime-avg –top-mem[/code]

ファイルに書く場合は2つ方法があります。

CSV用のカンマ区切り(画面も表示)
[code]# ./dstat -cdnlt -N eth0,eth1,total -D sda1,sda2,sda3,total –top-io –top-bio –top-cpu –top-cputime –top-cputime-avg –top-mem -o filename[/code]

terminal画面の出力をそのまま保存(画面表示無)
[code]# ./dstat -cdnlt -N eth0,eth1,total -D sda1,sda2,sda3,total –top-io –top-bio –top-cpu –top-cputime –top-cputime-avg –top-mem > filename[/code]

これによって1秒ごとにサーバの動作状況とその時に最も活動しているプロセスとその対象をいくつかの指標でログに取得できます。

, ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...