![見出し画像](https://assets.st-note.com/production/uploads/images/162056924/rectangle_large_type_2_60b4f20e6cc90d28c3cf8ba8000c9f31.png?width=1200)
プロセスと「ps aux」 コマンドに関して
「プロセス」って、インフラエンジニアなら日常的に使う言葉ですが、いざ説明しようとすると「あれ、どう言えばいいんだろう?」と考え込んでしまうこともあります。そこで、この記事ではプロセスの状況を確認する定番コマンドps auxについて、わかりやすく解説していきます。
ps auxは、システム管理者や開発者がサーバーの動いているプログラム(プロセス)を確認し、システム全体の状態を把握するための代表的なコマンドです。ここではシェフとキッチンを例えにして、このコマンドの意味をぐっとわかりやすくご紹介します。
ps auxとは?
ps auxは、システム上で実行中のプログラムがどのような状態か、どれだけリソースを使っているか、誰が実行しているかを一覧で表示するコマンドです。この状況をシェフとキッチンに例えてみましょう。
ps auxコマンドのオプションの意味
a:全てのユーザーのプロセスを表示する(allの略)。
u:ユーザーやCPU、メモリ使用率など詳細情報も表示する(user-oriented formatの略)。
x:制御端末(TTY)を持たないプロセスも表示する(without a TTYの略)。
これらのオプションを組み合わせることで、システム上で稼働中の全プロセスに関する詳細な情報を一覧表示できます。
店長とシェフの例えでプロセス管理を理解する
店長(ps auxを実行する人)
店長の役割は、キッチンのすべてのシェフがどの料理を作っているのか、誰がどれだけの材料や器具(リソース)を使っているのかを把握することです。シェフ(プロセス)
キッチンで料理を作るシェフの一人ひとりが「プロセス」です。シェフはそれぞれ異なる料理(プログラム)を作っており、リソースの消費量も異なります。料理(プログラム)
シェフが作っている料理が「プログラム」にあたります。たとえば、データベース、Webサーバー、バックグラウンド処理などがそれぞれ別の料理(タスク)です。体力や容量(CPUやメモリ使用率)
シェフの体力や集中力に限りがあるように、プロセスもCPUやメモリのリソースを使い、その消費量は常に変化しています。
ps auxで何がわかるのか?
ps auxを実行すると、店長は全てのシェフ(プロセス)の状態を一目で確認できます。たとえば次のような情報が表示されます:
ユーザー(USER):どのユーザーがこのプロセスを実行しているか
プロセスID(PID):各プロセスに割り当てられた識別番号
CPU使用率(%CPU):そのプロセスがどれだけの「計算力」を使っているか
メモリ使用率(%MEM):どれだけの「記憶力」を使っているか
実行コマンド(COMMAND):シェフがどんな料理(プログラム)を作っているかを示すコマンドライン
たとえば、/usr/bin/kubelet --config=/var/lib/kubelet/config.yamlと表示されれば、「シェフがkubeletという料理(プログラム)を/var/lib/kubelet/config.yamlを使って調理中」だと解釈できます。
ps auxでキッチンの効率を最大化する
ps auxの結果から、「特定のシェフ(プロセス)がリソースを使いすぎている」「ある料理(プログラム)が想定より多くの体力(メモリ)を消費している」といった状況がわかります。こうした場合には、リソースを使いすぎているプロセスを停止したり、優先度を下げるなどの対応を取ることで、キッチン全体の効率を高め、システムの安定性を保つことができます。
まとめ
ps auxは、システムの管理者がシェフたち(プロセス)がどんな料理(プログラム)をどれだけの材料(リソース)を使って作っているかを把握するための便利なコマンドです。これを使いこなすことで、システムのパフォーマンスを維持し、リソースの使いすぎや効率の低下を防ぐことができます。