はじめに
こんにちは!今回はpsコマンドについて解説します。
psは実行中のプロセスを表示するコマンドです。“process status"の略ですね。
サーバーで「どのプログラムが動いているのか」「CPUやメモリはどのプロセスが使っているのか」を確認する時に活躍します。トラブル対応やシステム監視に必須のコマンドですよ。
psコマンドとは
psは、実行中のプロセス(プログラム)の一覧を表示する外部コマンドです。
プロセスID(PID)、CPU使用率、メモリ使用量、実行ユーザー、コマンド名など、プロセスに関する様々な情報を表示できます。トラブル対応やパフォーマンス監視に欠かせないコマンドです。
主な用途:
- 実行中のプロセス確認
- CPU・メモリ使用量の監視
- 特定プロセスの情報取得
基本構文
|
|
オプションは様々な組み合わせが可能です。
主なオプション
| オプション | 説明 |
|---|---|
-a |
すべてのプロセスを表示 |
-u |
ユーザー名と共に表示 |
-x |
ターミナルなしのプロセスも表示 |
-e |
すべてのプロセスを表示 |
-f |
詳細情報を表示 |
-o |
表示項目をカスタマイズ |
aux |
最も一般的な組み合わせ(a+u+x) |
ef |
詳細な全プロセス表示 |
使用例
例1: 基本的なプロセス表示
|
|
実行結果:
|
|
現在のシェルおよび関連プロセスを表示します。最小限の情報です。
例2: すべてのプロセスを表示(最も常用)
|
|
実行結果:
|
|
すべてのプロセスをCPU・メモリ使用率とともに表示します。最も実用的な形式です。
例3: 特定のプロセスを検索
|
|
実行結果:
|
|
grepで特定プロセスを検索します。apache関連のプロセスを確認できます。
例4: ツリー形式で表示(親プロセスが見やすい)
|
|
実行結果:
|
|
プロセスの親子関係をツリー状に表示します。親プロセスがわかりやすいです。
例5: CPU使用率でソート
|
|
実行結果:
|
|
CPU使用率でソートして上位を表示します。CPU消費の多いプロセスを特定できます。
例6: メモリ使用量でソート
|
|
実行結果:
|
|
メモリ使用量でソートします。メモリリークの検出に役立ちます。
例7: 特定ユーザーのプロセスのみ表示
|
|
実行結果:
|
|
特定ユーザー(apache)が実行中のプロセスのみ表示します。
例8: 特定のプロセスIDの詳細情報
|
|
実行結果:
|
|
特定のプロセスID(2345)の詳細情報を表示します。カスタマイズ表示が便利です。
例9: プロセスの親子関係を確認
|
|
実行結果:
|
|
PIDとPPID(親プロセスID)を表示して親子関係を確認できます。
例10: バックグラウンドプロセスの監視
|
|
実行結果:
|
|
watchコマンドと組み合わせてプロセスをリアルタイム監視できます。
Tips・注意点
psのオプション形式の違い
|
|
両方の形式が使えますが、BSD形式(ps aux)が最も一般的です。
%CPUと%MEMについて
|
|
%CPUはマルチコア環境では100%を超えることがあります。
topコマンとの違い
|
|
psは実行時点の情報、topは継続的な監視に適しています。
実践的な使い方
実行中のすべてのプロセスを確認
|
|
システム全体の状態確認の最初のステップです。
特定プロセスのPIDを取得してkillする
|
|
プロセスを停止する時に使う標準手順です。
メモリリークの検出
|
|
メモリ使用量が異常に高いプロセスを検出します。
僵尸プロセスの確認
|
|
終了したが親プロセスが回収していない僵尸プロセスを確認できます。
まとめ
psコマンドのポイント:
- 基本形式:
ps aux(最も常用) - 詳細表示:
ps -ef - ツリー表示:
ps -ef --forest - 特定プロセス:
ps aux | grep name - CPU優先度:
ps aux --sort=-%cpu - メモリ優先度:
ps aux --sort=-%mem - カスタム出力:
ps -o pid,user,comm
プロセス管理とトラブル対応に必須のコマンドです。ps auxで全体状況を把握し、必要に応じてソートや検索で詳細を確認するのが標準的なワークフローですよ!