6. メモリ監視

効果的なシステム管理には、リソース使用状況を注意深く監視することが不可欠であり、メモリ監視はそのプロセスの重要な部分です。システムがメモリ不足になると、パフォーマンスが大幅に低下する可能性があります。Linux にはメモリ消費量を追跡するためのいくつかのツールが用意されており、その中でも最も多用途なツールの一つがvmstatです。

vmstat の紹介

vmstat(仮想メモリ統計)コマンドは、プロセス、メモリ、ページング、ブロック I/O、トラップ、CPU アクティビティに関する情報を報告する強力なメモリ使用率モニターです。引数なしで実行すると、前回の起動以降のシステムの現在の状態のスナップショットが提供されます。

pete@icebox:~$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 396528  38816 384036    0    0     4     2   38   79  0  0 99  0  0

出力はいくつかの列に整理されています。各フィールドの意味を見ていきましょう。

Procs (プロセス)

  • r: 実行時間を待っている実行可能プロセスの数。
  • b: 不可中断スリープ状態にあるプロセスの数(通常は I/O を待機中)。

Memory (メモリ)

  • swpd: 使用されている仮想メモリ量(キロバイト単位)。
  • free: アイドル状態のメモリ量(キロバイト単位)。
  • buff: バッファとして使用されているメモリ量。
  • cache: ページキャッシュとして使用されているメモリ量。

Swap (スワップ)

  • si: 1 秒あたりディスクからスワップインされたメモリ量(キロバイト単位)。高い値は、システムが物理メモリ不足であることを示します。
  • so: 1 秒あたりディスクにスワップアウトされたメモリ量(キロバイト単位)。これは理想的にはゼロであるべきです。

IO (入出力)

  • bi: ブロックデバイスから受信したブロック数(ブロック/秒)。
  • bo: ブロックデバイスに送信されたブロック数(ブロック/秒)。

System (システム)

  • in: 1 秒あたりの割り込み回数(クロックを含む)。
  • cs: 1 秒あたりのコンテキストスイッチの回数。

CPU (CPU)

これらは総 CPU 時間に対する割合です。

  • us: カーネルコード以外(ユーザー時間)の実行に費やされた時間。
  • sy: カーネルコード(システム時間)の実行に費やされた時間。
  • id: アイドル状態で費やされた時間。
  • wa: I/O 待ちに費やされた時間。
  • st: 仮想マシンから盗まれた時間(仮想化環境の場合)。

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

サインイン

演習

練習あるのみです!システムおよびメモリ監視の理解を深めるための実践的なラボをいくつかご紹介します。

  1. Linux free コマンド:システムメモリの監視 - さまざまな表示形式と総メモリ消費量を理解しながら、システムメモリの使用状況を監視および分析する方法を学びます。
  2. Linux top コマンド:リアルタイムシステム監視 - ソートやフィルタリングのためのさまざまなオプションを使用して、プロセス、CPU、メモリ使用量を含むシステムパフォーマンスをリアルタイムで監視する方法を学びます。

これらのラボは、システムリソース監視の概念を実際のシナリオに適用し、Linux システムパフォーマンスの分析に対する自信を高めるのに役立ちます。

クイズ

メモリ使用状況を表示するために使用されるツールは何ですか?(英語で、大文字と小文字を区別して回答してください)