プロセスは、プログラムの実行中のインスタンスと、そのメモリ、認証情報、開いているリソース、実行状態を合わせたものです。Linux は各プロセスを数値のプロセス ID(PID)で識別します。同時に存在する間は一意ですが、終了後にカーネルが再利用できます。
プロセス · レッスン 1
ps (プロセス)
`ps` でプロセスのスナップショットを取得し、`top` で変化する活動を監視する方法を学びます。
基本的なスナップショット
オプションなしの ps は実装の既定条件で選んだスナップショットを表示し、通常は現在の端末とユーザーに関連するプロセスを示します。
$ ps
PID TTY TIME CMD
41230 pts/4 00:00:00 bash
51224 pts/4 00:00:00 ps
一般的なフィールドは次のとおりです。
PID:プロセス IDTTY:制御端末。関連付けがなければ?TIME:経過時間ではなく、累積 CPU 時間CMD:選択形式に応じたコマンド名またはコマンドライン
正確な列と既定の選択条件は ps の実装や環境で異なります。
PID 列は何を識別しますか?
BSD 形式のオプションで一覧表示する
Linux の ps は複数のオプション形式を受け付けます。BSD 形式は先頭のダッシュなしで書くのが一般的です。
$ ps aux
この組み合わせでは次の意味があります。
a:端末を持つほかのユーザーのプロセスまで選択を広げる。x:制御端末のないプロセスも含め、aとともに選択を広げる。u:USER、%CPU、%MEM、VSZ、RSSなどを持つユーザー指向形式を選ぶ。
オプションの意味は相互作用するため、各文字を独立したコマンドと考えず、組み合わせ全体を解釈してください。
ps aux でユーザー指向の出力形式を要求するオプションはどれですか?
標準形式のオプションを使う
広く使われる ps -ef は先頭にダッシュを付けます。
$ ps -ef
-e:呼び出し元から見えるすべてのプロセスを選ぶ。-f:完全形式の一覧を要求する。
通常は UID、PID、PPID、開始時刻、コマンド情報を含みます。PPID は親プロセス ID です。この一覧は本質的に階層表示ではありません。親子関係が重要なら、対応環境で --forest、または pstree を使います。
ps -ef の -e は何を要求しますか?
時間とともに活動を監視する
ps は1回のスナップショットを出力して終了します。定期的に更新する対話型ビューには top を使います。
$ top
CPU とメモリの消費が変化するプロセスを見つけられますが、値は変動するサンプルです。複数回観測し、割合を CPU 数、メモリ計算、ワークロードと関連付けて疑わしい問題を確認してください。
ここで紹介したうち、既定でプロセス表示を定期更新するツールはどれですか?
実践には Linux プロセスの管理と監視 でスナップショットと対話型モニターを比較するか、Linux top コマンド で並べ替えと絞り込みを試してください。
レッスン完了
ps (プロセス) を完了しました
プロセスビューを選び、基本的な識別子を解釈できるようになりました。
PID を現在実行中のプロセスに対する再利用可能な識別子として扱う。
小さな既定スナップショットにはオプションなしの
psを使う。広い選択と豊富な列には
ps auxまたはps -efを使う。時間変化が重要なら
topを使う。