1. プロセスの追跡:top

リソース使用率の読み方と分析方法を理解することは、すべての Linux ユーザーにとって極めて重要なスキルです。コマンドラインツールの習得こそが、Linux がどのように機能するかについての深い洞察を与えてくれるため、Linux をゼロから学ぶための最良の方法だと考える人が多くいます。このレッスンでは、プロセスがリアルタイムで何を行っているかを追跡するための強力なユーティリティであるtopを紹介します。

top コマンドの理解

以前にtopについて簡単に触れましたが、ここでは表示内容の詳細を掘り下げます。topコマンドは、マシンのプロセスとシステム使用状況を動的かつリアルタイムで表示します。

top - 18:06:26 up 6 days,  4:07,  2 users,  load average: 0.92, 0.62, 0.59
Tasks: 389 total,   1 running, 387 sleeping,   0 stopped,   1 zombie
%Cpu(s):  1.8 us,  0.4 sy,  0.0 ni, 97.6 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:  32870888 total, 27467976 used,  5402912 free,   518808 buffers
KiB Swap: 33480700 total,    39892 used, 33440808 free. 19454152 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 6675 patty    20   0 1731472 520960  30876 S   8.3  1.6 160:24.79 chrome
 6926 patty    20   0  935888 163456  25576 S   4.3  0.5   5:28.13 chrome

この出力を確認していきましょう。すべてを暗記する必要はありませんが、このレッスンをリファレンスとして使用できます。

システムサマリー

最初の数行は、システムの状態に関する概要を提供します。

  • 1 行目: これはuptimeコマンドを実行した場合と同じ情報です。現在時刻、システムの稼働時間、ログインユーザー数、および過去 1 分、5 分、15 分間のシステムロードアベレージを示します。
  • 2 行目: 実行中、スリープ中、停止中、またはゾンビとして分類されたすべてのタスク(プロセス)の概要です。

CPU 使用率の内訳

3 行目は CPU 使用率の詳細を示します。

  • us: niced(優先度が変更されていない)ユーザープロセスを実行するために費やされた CPU 時間の割合。
  • sy: カーネルとそのプロセスを実行するために費やされた CPU 時間の割合。
  • ni: niced(低優先度)ユーザープロセスを実行するために費やされた CPU 時間の割合。
  • id: アイドル状態の CPU 時間の割合。
  • wa: I/O 操作の完了を待機するために費やされた CPU 時間の割合。高い値はディスクまたはネットワークのボトルネックを示している可能性があります。
  • hi: ハードウェア割り込みを処理するために費やされた CPU 時間の割合。
  • si: ソフトウェア割り込みを処理するために費やされた CPU 時間の割合。
  • st: スティールタイム。仮想化環境では、ハイパーバイザーが別の仮想プロセッサをサービスしている間に、仮想 CPU が実際の CPU を待機した割合です。

メモリとスワップ情報

4 行目と 5 行目は、それぞれメモリとスワップ領域の使用状況を示します。これには、合計、使用済み、空き容量が含まれます。

プロセスリスト

topの主要部分は、最もリソースを消費しているプロセスのリストです。

  • PID: 一意のプロセス ID。
  • USER: プロセスを所有するユーザー。
  • PR: プロセスのスケジューリング優先度。
  • NI: プロセスの優先度に影響を与える「nice」値。
  • VIRT: プロセスが使用する仮想メモリ。プロセスがアクセスできるメモリの総量です。
  • RES: プロセスが使用する常駐メモリ。タスクが使用しているスワップされていない物理メモリです。linux top virt resの違いを理解することがメモリ分析の鍵となります。
  • SHR: プロセスが使用する共有メモリ。
  • S: プロセスの状態:S=スリープ,R=実行中,Z=ゾンビ,D=中断不可能なスリープ,T=停止。
  • %CPU: 最終更新以降にこのプロセスが使用した CPU 時間の割合。
  • %MEM: このプロセスが使用した物理 RAM の割合。
  • TIME+: プロセスが開始されてから使用した合計 CPU 時間。
  • COMMAND: プロセスを開始したコマンド名またはコマンドライン。

特定のプロセス ID を指定して監視することもでき、集中的なトラブルシューティングに役立ちます。

top -p 1

ログインして学習進捗を保存

サインイン

演習

習得には実践が不可欠です。これらのハンズオンラボは、学んだことを実践的に応用できる環境を提供するため、Linux プロセス管理を学ぶための最良のリソースの一部です。

  1. Linux プロセスの管理と監視 - 実際の Linux 環境でプロセスを操作、検査、監視、終了する練習をします。
  2. Linux top コマンド:リアルタイムシステム監視 - topコマンドを使用して、CPU 使用率、メモリ、実行中のプロセスをリアルタイムで監視する方法を学びます。
  3. Linux free コマンド:システムメモリの監視 - freeコマンドを使用して、システムメモリの使用状況を監視および分析する方法を学びます。

クイズ

top の最初の行と同じ出力を表示するコマンドは何ですか?小文字の英数字のコマンド名のみで回答してください。