コンソール上で利用できるGolang製のvmstatっぽいCPUモニタリングツール『cpustat』

ネットサーフィン中に、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

触ってみた限り、結構良さげな感じ。