ネットサーフィン中に、Uberの作ったGolang製のモニタリングツール『cpustat』なるものを見かけたので、ちょっと試してみることにした。 githubの画像を見てもらうとわかるのだが、コンソール上であってもグラフで使用率等を表示してくれてるみたいで、なかなか良さげ。 インストール(というかコンパイル)にはGolangが必要になるので、インストール前にその辺の環境は構築済みであることを想定して進める。
まず、以下のコマンドでcpustatのソースをダウンロードしてインストールしてやる。実行にはroot権限が必要になるので、ここではバイナリを/usr/sbinにおいている。
go get github.com/uber-common/cpustat
go build github.com/uber-common/cpustat
sudo mv ./cpustat /usr/sbin
これでインストールは完了。 とりあえずオプション無しで実行した結果が以下。
sudo cpustat
blacknon@BS-PUB-DEVELOP:~$ sudo cpustat
sampling interval:200ms, summary interval:2s (10 samples), showing top 10 procs, user filter:all, pid filter:all
usr: 0/ 1.5/ 5.0 sys: 0/ 2.0/10.0 nice: 0/ 0/ 0 idle: 185/ 196/ 200
iowait: 0/ 0/ 0 prun: 1.0/ 1.0/ 1.0 pblock: 0/ 0/ 0 pstart: 0
name pid min max usr sys runq iow swap vcx icx ctime rss nice thrd sam
cpustat 23303 0 20.0 1.5 2.5 0 0 0 0 0 0 12M 0 6 10
kworker/u4:2 22889 0 0 0 0 0 0 0 4 0 0 0K 0 1 10
rcu_sched 7 0 0 0 0 0.1 0 0 57 0 0 0K 0 1 10
kworker/0:1 22726 0 0 0 0 0 0 0 3 0 0 0K 0 1 10
kworker/1:0 22595 0 0 0 0 0 0 0 3 0 0 0K 0 1 10
ksoftirqd/0 3 0 0 0 0 0 0 0 8 0 0 0K 0 1 10
kworker/1:1H 479 0 0 0 0 0 0 0 1 0 0 0K -20 1 10
bioset 306 0 0 0 0 0 0 0 0 0 0 0K -20 1 10
systemd-logind 993 0 0 0 0 0 0 0 0 0 0 3M 0 1 10
khugepaged 22 0 0 0 0 0 0 0 0 0 0 0K 19 1 10
usr: 0/ 1.5/10.0 sys: 0/ 2.0/ 5.0 nice: 0/ 0/ 0 idle: 185/ 195/ 200
iowait: 0/ 0/ 0 prun: 1.0/ 1.2/ 2.0 pblock: 0/ 0/ 0 pstart: 0
name pid min max usr sys runq iow swap vcx icx ctime rss nice thrd sam
cpustat 23303 0 20.0 2.0 2.5 0 0 0 0 0 0 20M 0 6 10
kworker/u4:1 23249 0 0 0 0 0 0.1 0 13 0 0 0K 0 1 10
sshd: 22970 0 0 0 0 0.1 0 0 1 7 0 4M 0 1 10
rcu_sched 7 0 0 0 0 0.1 0 0 58 0 0 0K 0 1 10
iscsid 1069 0 0 0 0 0 0 0 8 0 0 3M -10 1 10
kworker/1:0 22595 0 0 0 0 0 0 0 3 0 0 0K 0 1 10
kworker/0:1 22726 0 0 0 0 0 0 0 3 0 0 0K 0 1 10
khugepaged 22 0 0 0 0 0 0 0 1 0 0 0K 19 1 10
kworker/1:1H 479 0 0 0 0 0 0 0 1 0 0 0K -20 1 10
systemd-logind 993 0 0 0 0 0 0 0 0 0 0 3M 0 1 10
更に、-tオプションを付与することでグラフで使用率等を表示してくれる。
sudo cpustat -t
触ってみた限り、結構良さげな感じ。