4. CPU 監視

Linux システムを管理する上で基本的なスキルは、そのパフォーマンスを理解することです。簡単な健全性チェックに最も役立つコマンドの 1 つが uptime です。

user@host:~$ uptime
 17:23:35 up 1 day,  5:59,  2 users,  load average: 0.00, 0.02, 0.05

以前にuptimeを見たことがありますが、ここではLinux CPU 監視に不可欠なload average(ロードアベレージ)フィールドに焦点を当てます。

ロードアベレージの理解

ロードアベレージは、システム上の CPU 負荷のスナップショットを提供します。3 つの数値は、過去 1 分、5 分、15 分間における平均 CPU 負荷を表します。しかし、CPU 負荷とは何でしょうか?それは、実行キュー(run-queue)内のプロセスの平均数、つまり CPU によってアクティブに実行されているか、順番を待っているプロセスの数です。このメトリックは、プロセス利用率と全体的なシステムパフォーマンスの重要な指標となります。

交通渋滞のアナロジー

シングルコア CPU を単一車線の高速道路だと想像してください。

  • 高速道路が満車で車の流れが一定の場合、トラフィックは 100% であり、ロードアベレージ 1.0 に相当します。
  • 大規模な渋滞が発生し、車の列が高速道路の容量の 2 倍にまで伸びている場合、負荷は 200%、つまりロードアベレージ 2.0 になります。
  • 高速道路が半分空いている場合、負荷は 0.5 です。
  • 理想的には、深夜 2 時で交通量がない高速道路のように、低いロードアベレージを望みます。

このアナロジーでは、車が CPU によって処理されるのを待っているプロセスに相当します。

最新システムでのロードアベレージの解釈

ロードアベレージが 1.0 であっても、必ずしもシステムが苦戦しているわけではありません。ほとんどの最新のコンピューターはマルチコアプロセッサを搭載しています。クアッドコア(4 コア)プロセッサを使用している場合、ロードアベレージが 1.0 であることは、総 CPU 容量のわずか 25% しか使用されていないことを意味します。各コアは、高速道路の追加レーンのように機能します。

ロードアベレージを適切に解釈するには、CPU コア数を考慮する必要があります。システム上のコア数は、コマンドcat /proc/cpuinfoで確認できます。

良好なシステムパフォーマンスの一般的なルールは、ロードアベレージをコア数未満に保つことです。マシンのロードアベレージがコア数を一貫して上回っていることが判明した場合、暴走プロセスや不十分なハードウェアリソースなど、パフォーマンスのボトルネックを示している可能性があります。

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

サインイン

演習

実用的な経験を積むために、Linux CPU 監視システムパフォーマンスの分析を行いましょう。以下のハンズオンラボは、ロードアベレージプロセス利用率の概念を実世界のシナリオに応用するのに役立ちます。

  1. Linux プロセスの管理と監視 - pstopなどのツールを使用してプロセスと対話し、リソースを検査する練習をします。これは CPU 負荷の理解に直接関連します。
  2. Linux top コマンド:リアルタイムシステム監視 - リアルタイムのシステム監視のためにtopコマンドを使用する方法を学び、プロセスの並べ替えやフィルタリングを行い、CPU とプロセスの活動をより深く掘り下げます。
  3. Linux free コマンド:システムメモリの監視 - システムメモリの使用状況を監視および分析する方法を学びます。これは、全体のシステムパフォーマンスにおいて CPU 負荷と並んで重要な要因となることがよくあります。

クイズ

システムのロードアベレージを確認するために使用できるコマンドは何ですか?回答は英語で、コマンドは大文字と小文字が区別されることに注意してください。