Linux のタスクは実行、待機、停止、終了に伴い、状態間を移動します。ps の STAT は一瞬を捉えるため、診断には1文字だけより繰り返し観測する方が有用です。
$ ps -o pid,ppid,stat,wchan:24,cmd
プロセス · レッスン 9
`ps` のスナップショットで、一般的な Linux プロセス状態コードを解釈する方法を学びます。
Linux のタスクは実行、待機、停止、終了に伴い、状態間を移動します。ps の STAT は一瞬を捉えるため、診断には1文字だけより繰り返し観測する方が有用です。
$ ps -o pid,ppid,stat,wchan:24,cmd
STAT の先頭文字が主状態で、後続文字はセッションリーダーやフォアグラウンドプロセスグループ所属などの性質を表す修飾子です。完全な一覧はローカルの ps マニュアルを参照してください。
R:実行中または実行可能。CPU 上で実行中か、実行キューで CPU 時間を待っている。S:割り込み可能なスリープ。イベントを待ち、適切なシグナルやイベントで起こせる。スリープは正常です。対話型プログラムやサービスは継続的に CPU を消費せず、入力、タイマー、ネットワーク通信、ロックなどを待つ時間が多くあります。
主状態 R は何を意味しますか?
割り込み可能なスリープを表す主状態はどれですか?
D は、ストレージやネットワークファイルシステムの I/O など、一部のカーネル操作を待つ割り込み不可能なスリープです。待機を離れるまで通常のシグナルへ反応せず、その間シグナルは保留される場合があります。
短時間なら正常です。長く続く、または多数の D は遅い・利用不能・故障した I/O を示す場合がありますが、状態だけでは原因を特定できません。結論前に待機チャネル、カーネルログ、ストレージとネットワークの正常性、関連サブシステムを調べます。
割り込み不可能なスリープを示す主状態はどれですか?
T:通常は SIGTSTP などのジョブ制御、または SIGSTOP で停止。追跡による停止には小文字 t を使うツールもある。Z:実行を終えたが、親が終了記録をまだ回収していないゾンビ。適切なら SIGCONT でジョブ制御による停止を再開します。ゾンビはすでに実行していないため、再開も kill もできず、親または引き取った reaper が回収します。
主状態 Z は何を識別しますか?
状態コードは観測結果で、診断ではありません。経過時間、CPU 使用量、待機チャネル、親関係、ログ、繰り返しサンプルと組み合わせます。カーネルが報告した瞬間から画面を読むまでに状態が変わる場合もあります。
Linux プロセスの管理と監視 では、フォアグラウンド、スリープ中、停止中、終了済みのタスクを安全に観測できます。
レッスン完了
最も一般的な主プロセス状態を解釈できるようになりました。
R を実行中・実行可能、S を割り込み可能なスリープとして読む。
長く続く D を診断ではなく待機症状として調べる。
停止中の T と、終了済み未回収の Z を区別する。
繰り返し観測し、周囲の証拠と組み合わせる。