Linuxのhtop/top完全解説(2019年)

原題: Explanation of everything you can see in htop/top on Linux (2019)

なぜ重要か

Linuxシステム監視の基礎知識を/procファイルシステムレベルから体系化した資料として、SREやインフラエンジニアの学習コンテンツとして継続的に需要がある。

エンジニアのPeteris Rocks氏が2019年に公開したLinuxの監視ツール「htop」および「top」の表示項目を網羅的に解説した技術記事が、Hacker Newsおよびr/programmingで複数回にわたり1位を獲得し、注目を集めている。ロードアベレージ、プロセス状態、メモリ使用量など全項目を/procファイルシステムの仕組みから丁寧に説明している。

Peteris Rocks氏が2019年11月に更新した本記事は、Linuxシステム管理ツール「htop」の画面に表示されるすべての情報を体系的に解説したものだ。Ubuntu Server 16.04 x64環境のスクリーンショットをもとに、各表示項目の意味と取得元を詳しく説明している。

記事はまず「Uptime(稼働時間)」から始まり、その数値が/proc/uptimeファイルから読み取られることを示す。さらにstraceコマンドを使い、uptimeプログラムが実際にどのファイルを開いているかを確認する手順も紹介している。

「ロードアベレージ」については、1分・5分・15分の平均システム負荷を表す3つの数値が/proc/loadavgから取得されることを説明。著者自身が誤解していた「2コアマシンでロードアベレージ1.0はCPU使用率50%」という認識が誤りであることを示している。

プロセスに関しては、PID(プロセスID)、プロセスツリー、実行ユーザー、プロセス状態(R・S・D・Z・T・tの各状態)、実行時間、ナイス値と優先度を個別に解説。特にプロセス状態の分類は、Runnable・Interruptible Sleep・Uninterruptible Sleep(主にI/O待ち)・Zombie・ジョブ制御停止・デバッガ停止の6種類に整理されている。

メモリ使用量については、VIRT(仮想メモリ)、RES(物理メモリ常駐サイズ)、SHR(共有メモリ)、MEM%の4指標を区別して説明。さらに/sbin/initや各種systemdサービスなど、起動直後から動作している主要プロセスについても個別に取り上げている。

付録ではファイルディスクリプタ・リダイレクト、PuTTYの色設定、Cで記述されたシェル、htopのソースコードにも言及しており、初心者から中級者まで参照できる構成となっている。本記事は2016年12月の初掲載時にもHacker Newsとr/sysadminで1位を獲得しており、長期にわたって参照され続けている。

出典

peteris.rocks — 元記事を読む →