procps-ng: top の Forest View と Graph

procps-ngリポジトリの master をビルドして、 top を実行したらデフォルトの UI がガラっと変わっているのに気がついた

f:id:hiboma:20171107165503p:plain

さらに A を押すとカラフル

f:id:hiboma:20171108002042p:plain

以降調べたこと

Forest-View-Mode と Graph

プロセスをツリー状に表示するのは Forest View と呼ぶらしい

f:id:hiboma:20171108001937p:plain

CPUやメモリのメーター表示は Graph と呼ぶらしい

f:id:hiboma:20171108001950p:plain

コミットログ

Graph 表示を追加したのは以下のコミット (v.3.3.10 でリリース)

gitlab.com

デフォルトを Forest View に切り替えたのは以下のコミット (v.3.3.10 でリリース)

gitlab.com

注: Forest View 自体がどこで導入されたのかは追いきれてない

CentOS7

CentOS7.4 (1708) の top は procps-ng-3.3.10-16.el7 で、どちらも使える機能なのだが全く知らずに過ごしていた

理由を探るべくパッケージの spec ファイルを rpms/procps-ng.git - git.centos.org で確認したところ、以下のオプションによって 新しいモードをデフォルトでは使わない指定になっているのだった。 ΩΩΩ<ナ、ナンダッテー

            --disable-modern-top

RHEL の意向なのかなぁ。仕様をガラっと変えたくないとか

CentOS7 で新しいモード を有効にしたい場合

  • top 起動
  • V を押す ... Forest-View-Mode にする
  • 1 を押す ... 論理CPU を全て表示する
  • m を押す ... メモリの Graph を表示する
  • t を押す ... CPU の Graph を表示する
  • c を押す ... コマンドラインをフル表示する

とすると現在の master 版とほぼ同じ UI に変身する。繰り返すが全然知らなかったな

感想

  • 手に馴染んで使ってるツールほど 新しい機能や良いやり方に気がつかないってのはあるある
  • 強制的に新しいのにシフトさせることで再学習やアンラーニングを促す効果もあろう (Apple ぽい)
  • 障害や不具合調査する際には top は必須コマンドだが、バージョンが違うとショートカットキーの違いで思うように操作できないことがあって、緊急時に困ったりはする

procps-ng / top は継続的に開発が続けられていて、新しいカーネルの仕様変更の追随や NUMA や LXC への対応や、現在は UTF-8 化などが進められている。今後の進化にも期待だ〜