世界を動かす技術を、日本語で。

Linuxのhtop/topで見ることができるすべての説明

2026年7月4日原文(peteris.rocks)

概要

  • htop の各項目の意味を詳細に解説
  • uptimeload average の正しい読み方を説明
  • /proc ファイルシステムから情報を取得する仕組みを紹介
  • プロセスタスク の違い、IDやユーザー情報の取得方法を説明
  • プロセスツリー やユーザー管理まで幅広くカバー

htopの見方とシステム情報の取得方法

  • htop はLinuxシステムのリソース状況やプロセス情報をリアルタイムで表示するツール
  • Uptime はシステムの稼働時間を示し、/proc/uptimeファイルから取得
    • 1つ目の値:システム起動からの総稼働秒数
    • 2つ目の値:全CPUコアのアイドル時間の合計(マルチコアの場合、合計が稼働時間を超える場合あり)
  • strace コマンドで、uptimeなどのプログラムがどのファイルを参照しているか確認可能
    • 例:strace -e open uptime/proc/uptimeファイルを参照していることを確認
  • uptimeコマンド は人間が読みやすい形式で出力、スクリプト用途には生データの方が便利

Load Averageの正しい理解

  • Load average/proc/loadavgから取得し、1分、5分、15分の平均負荷を示す
  • /proc/loadavgの内容例:0.00 0.01 0.03 1/120 1500
    • 最初の3つ:直近1分、5分、15分の平均システム負荷
    • 4つ目:現在実行中または実行待ちプロセス数/総プロセス数
    • 5つ目:最後に割り当てられたプロセスID
  • Load average=1.0 は、1つのCPUコアが常に1つのプロセスを処理している状態
    • 2コアの場合、 2.0 が100%利用率の目安
  • Load average にはCPU以外のリソース待ち(I/Oウェイトなど)も含まれるため、CPU使用率と必ずしも一致しない
  • 過去の負荷は 指数移動平均 で計算されており、直近の値ほど重視されるが、過去分も一部反映

プロセスとタスクの違い・表示

  • htop では「Tasks」と表示されるが、これは「プロセス」と同義
    • Linuxカーネル内部では「タスク」と呼ばれる
  • スレッド表示 :Shift+Hでスレッドの可視化切替
  • カーネルスレッド表示 :Shift+Kでカーネルスレッドの可視化切替
  • Tasks: 23, 10 thr はスレッドも表示中であることを意味

プロセスIDと/procの利用

  • 新しいプロセスには PID(プロセスID) が割り当てられる
  • バックグラウンド実行 (&)時は、ジョブ番号とPIDが表示
  • /proc/<pid>/ 配下にプロセスごとの詳細情報が格納
    • 例:/proc/12503/cmdlineで実行コマンドを取得
    • コマンドは\0区切りで格納、trstringsコマンドで整形可能
    • cwdはカレントディレクトリ、exeは実行バイナリへのシンボリックリンク

プロセスツリーと親子関係

  • プロセスは 親子関係 を持ち、ツリー構造を形成
    • htopでF5キー押下でツリー表示
    • ps fpstreeコマンドでもツリー表示可能
  • 例:init→sshd→bash→実行コマンドの流れ
  • プロセス生成時は fork でコピー、 exec で実行ファイルに置き換え

プロセスのユーザー管理

  • 各プロセスには 所有ユーザー があり、数値ID(Uid)で管理
    • /proc/<pid>/statusでUid確認可能
    • idコマンドで名前に変換
  • /etc/passwd/etc/group ファイルからユーザー名を取得
    • NSS(Name Service Switch)の設定/etc/nsswitch.confで参照先を指定

まとめ

  • htopや/proc を活用することで、Linuxシステムの詳細な状態把握が可能
  • Load averageプロセス情報 は正しく理解して使い分けることが重要
  • stracepspstree などのコマンドで内部動作を深掘りできる
  • システム管理やトラブルシューティングの基礎知識として必須

Hackerたちの意見

これめっちゃいいね!htopはよく使うけど、主にpidやCPUの問題を探すためだけで、他の機能はあんまり理解してなかったんだよね。

pidを探すならpgrepの方が使いやすいと思う。

2016年からこれをブックマークしてて、何度も参考にしてるよ。

他にHNが癒されてると感じてる人いる?このままHNが幽霊時代にならないことを願ってる。

フロントページにAI関連の記事が3つあるけど、1つは微妙な内容だね。ちょっと期待してる。

topで「>」を使うとメモリ使用量でソートできるよ。ホストが遅くなる理由を調べるときにたまに使ってる。それに、swapdがCPUを使ってるのもわかるし。

メモリには大文字のM、CPUには大文字のPを使う方が好き。

htopで毎回変更する設定が2つあって、これがめっちゃ大きな違いを生むんだ。1つ目はユーザースレッドを無効にすること。これってhtopの表示をただ混乱させるだけで、役に立たない情報しか提供しないから。2つ目はプロセスツリー表示を有効にすること。プロセスの出所が他の情報よりも重要なことが多いからね。コンパイラプロセスみたいに、たくさんのファイルを処理してるのも追跡できるし。個人的には、この2つはhtopのデフォルトの設定にすべきだと思う。

プロセスツリーの表示は好きなんだけど、動的な更新やプロセスリストの並び替えが止まっちゃうのが残念。

最近btopに移行したんだけど、これが必要なモダンなインターフェースで、便利で情報も豊富なんだ。他の人も言ってるけど、ワット数も表示されるみたいだしね :) (ネットワークやGPU、ディスクの情報も...)

そうそう、btop信者だよ。新しいMacBookでiStatMenuの代わりになっちゃった。

こういうのを読むと、20年以上Linuxを使ってるのに、まだそのポテンシャルをほとんど活かせてないことに気づく。いい記事だね。

Hacker Newsで議論の続きを見る