最近のLinuxにおける*stat

ときどき/usr/bin/以下の*statを見てみると、知らないコマンドが増えていて発見がある。

dstat

一時はてダで話題になったPythonで書かれた汎用stat。デフォルトでもカラフルな表示が楽しい

lnstat

manによると'unified linux network statistics'とのことで、ネットワーク関係のステータスが見られる。/proc/net/statの結果をパースして表示してくれる。 ネットワークレイヤの各種タイマーやらカウンタで普段見ないようなものまで追いかけられるので、トラブルシュートのときに良いかもしれない。引数の与えかたが伝統的な*statとはちょっと異なる

arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|
 entries|  allocs|destroys|hash_gro| lookups|    hits|res_fail|rcv_prob|rcv_prob|periodic|forced_g|unresolv| entries|  in_hit|in_slow_|in_slow_|in_no_ro|  in_brd|in_marti|in_marti| out_hit|out_slow|out_slow|gc_total|gc_ignor|gc_goal_|gc_dst_o|in_hlist|out_hlis| entries|  allocs|destroys|hash_gro| lookups|    hits|res_fail|rcv_prob|rcv_prob|periodic|forced_g|unresolv|
        |        |        |      ws|        |        |      ed|es_mcast|es_ucast|_gc_runs|  c_runs|ed_disca|        |        |     tot|      mc|     ute|        |  an_dst|  an_src|        |    _tot|     _mc|        |      ed|    miss| verflow| _search|t_search|        |        |        |      ws|        |        |      ed|es_mcast|es_ucast|_gc_runs|  c_runs|ed_disca|
        |        |        |        |        |        |        |        |        |        |        |     rds|        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |     rds|
      13|     373|     367|       2|   35905|   32708|    1874|       0|       0|   19900|       0|      65|      19|       0|  371775|       0|    6227|   12004|       0|       0|       0|    1303|    1032|       0|       0|       0|       0|       0|       0|       4|       2|       0|       0|       0|       0|       0|       0|       0|   19900|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|

手元のDebianではiproute2のパッケージに入っていた。

nfsiostat

nfsstatでもいいんだけど、数値の経過とかを追うのにはvmstatのような結果を出してくれるこちらの方が便利そう。 sysstatが/usr/binにnfs-commonが/usr/sbinに同名のコマンドを収録している

numastat

最近のプロセッサだとCPU自身にメモリコントローラが内蔵されていて、複数ソケットのサーバーなどではCPUごとにローカルメモリを持っているような物理構成になっていることが多い。こういうアーキテクチャをNUMA(Non-Uniform Memory Access; 非対称型メモリアクセス)と呼ぶのだけど、このプログラムではNUMA構成でいまどのようにメモリが使われているかを追うことができる。

% numastat
                           node0
numa_hit               410021903
numa_miss                      0
numa_foreign                   0
interleave_hit             13485
local_node             410021903
other_node                     0

手元のPCはNUMAではないので残念ながら意味のある結果にはならない。numactlというパッケージに収録

pidstat

sarのような内容をプロセスごとに定期的に出力してくれる。同じようなデータを取るのにtopをバッチモードで実行して記録したりしていたが、こちらの方が楽そう

03時27分07秒   UID       PID    %usr %system  %guest    %CPU   CPU  Command
03時27分09秒     0       176    0.00    0.50    0.00    0.50     0  kworker/0:1H
03時27分09秒     0      2248    0.00    0.50    0.00    0.50     0  cpufreqd
03時27分09秒     0      2570    3.50    1.50    0.00    5.00     0  Xorg
03時27分09秒  1000      4181    2.00    0.50    0.00    2.50     0  ibus-daemon
03時27分09秒  1000      4195    1.50    0.00    0.00    1.50     1  ibus-ui-gtk3
03時27分09秒  1000      4211    0.50    0.00    0.00    0.50     1  xfwm4
03時27分09秒  1000      4215    1.50    0.00    0.00    1.50     1  ibus-engine-skk
03時27分09秒  1000      4263    0.50    0.00    0.00    0.50     1  mlterm
03時27分09秒  1000     12651    5.50    0.00    0.00    5.50     1  chromium
03時27分09秒  1000     13179    0.50    1.00    0.00    1.50     1  pidstat
03時27分09秒  1000     19829    2.00    0.50    0.00    2.50     0  chromium

03時27分09秒   UID       PID    %usr %system  %guest    %CPU   CPU  Command
03時27分11秒     0      2570    1.00    1.50    0.00    2.50     1  Xorg
03時27分11秒  1000      4181    1.00    0.00    0.00    1.00     0  ibus-daemon
03時27分11秒  1000      4195    1.00    0.00    0.00    1.00     1  ibus-ui-gtk3
03時27分11秒  1000      4211    0.00    0.50    0.00    0.50     0  xfwm4
03時27分11秒  1000      4215    0.50    0.00    0.00    0.50     1  ibus-engine-skk
03時27分11秒  1000      4230    0.50    0.00    0.00    0.50     0  xfce4-panel
03時27分11秒  1000     12651    2.00    0.00    0.00    2.00     0  chromium
03時27分11秒  1000     13179    0.50    0.00    0.00    0.50     1  pidstat
03時27分11秒  1000     19829    1.50    0.00    0.00    1.50     0  chromium

sysstatのコマンドの一つとして収録されていた

nicstat

NICごとの利用状況をiostat風に出してくれる。その名の通りnicstatというパッケージに収録されていた

% nicstat 10                                                                                                                                                       Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
03:28:12     eth0   15.65    4.59   14.03   10.09  1142.4   465.5  0.02   0.00
03:28:12       lo    0.13    0.13    0.44    0.44   298.9   298.9  0.00   0.00
    Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
03:28:22     eth0    0.00    0.01    0.00    0.10    0.00   66.00  0.00   0.00
03:28:22       lo    0.00    0.00    0.10    0.10   48.00   48.00  0.00   0.00
    Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
03:28:32     eth0    0.08    0.04    0.90    0.60   94.11   67.00  0.00   0.00
03:28:32       lo    0.00    0.00    0.00    0.00    0.00    0.00  0.00   0.00