Open4

CloudWatch Agent で取得できるメトリクスの仕様調査

nukopynukopy

メモリメトリクス

概要

CloudWatch エージェントがメモリメトリクスを収集する場合、ソースはホストのメモリ管理サブシステム。例えば、Linux カーネルは OS が管理する /proc 内のデータを公開する。メモリについては、データは /proc/meminfo にある。

当然、オペレーティングシステムとアーキテクチャが異なれば、プロセスが使用するリソースの計算も異なる

各収集間隔において、各インスタンスの CloudWatch エージェントはインスタンスリソースを収集し、そのインスタンスで実行されているすべてのプロセスが使用しているリソースを計算する。この情報は CloudWatch メトリクスに報告される。収集間隔の長さは、CloudWatch エージェント設定ファイルで設定可能。詳細については、「 CloudWatch エージェント設定ファイル: Agent セクション」を参照。

  • Agent セクション

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html#CloudWatch-Agent-Configuration-File-Agentsection

CloudWatch エージェントが収集するメモリメトリクスの定義

CloudWatch エージェントが収集するメモリメトリクスの定義は以下の通り。

  • アクティブメモリ mem_active
    • プロセスが使用しているメモリ。つまり、現在実行中のアプリで使用されているメモリのこと。
    • 最後のサンプル期間中に何らかの方法で使用されたメモリの量。
  • 使用可能なメモリ mem_available, mem_available_percent
    • システムがスワップ状態にならずにプロセスに瞬時に割り当てられるメモリ (仮想メモリとも呼ばれます) 。
    • すぐにプロセスに渡すことができる使用可能なメモリの量。
  • バッファメモリ mem_buffered
    • さまざまな速度と優先順位で動作するハードウェアデバイスまたはプログラムプロセスによって共有されるデータ領域。(ちょっと何いっているかわからない)
    • バッファに使用されているメモリの量。
  • キャッシュされたメモリ mem_cached
    • CPU が次に必要とする可能性のあるプログラムの操作で繰り返し使用されるプログラム手順とデータを保存する。
    • ファイルキャッシュに使用されているメモリの量。
  • 空きメモリ mem_free
    • まったく使用されておらず、すぐに使用できるメモリです。このメモリは完全に空で、必要なときにシステムで使用できる。
    • 使用されていないメモリの量。
  • 非アクティブなメモリ mem_inactive
    • 「最近は」アクセスされていないページ。
    • 最後のサンプル期間中に何らかの方法で使用されていないメモリの量
  • 合計メモリ mem_total
    • 実際の物理メモリ RAM のサイズ。
  • **使用済みメモリ mem_used, mem_used_percent
    • プログラムやプロセスによって現在使用されているメモリ。
    • 現在使用中のメモリの量。
nukopynukopy

macOS: 収集されたメトリクスと使用された計算

収集されたメトリクスと単位:

  • アクティブ (バイト)
  • 使用可能 (バイト)
  • 使用可能率 (パーセント)
  • 空き (バイト)
  • 非アクティブ (バイト)
  • 合計 (バイト)
  • 使用済み (バイト)
  • 使用率 (パーセント)

  • 使用可能なメモリ = 空きメモリ + 非アクティブなメモリ
    • mem_available = mem_free + mem_inactive
  • 使用済みメモリ = 合計メモリ - 使用可能なメモリ
    • mem_used = mem_total - mem_available
  • 合計メモリ = 使用可能なメモリ + 使用済みメモリ
    • mem_total = mem_available + mem_used
nukopynukopy

スワップ領域

コンピューターシステムにおいて重要なメモリ管理の仕組み。

  • スワップ swap
    • 定義
      • ストレージデバイスの一部を、一時的にメモリの代わりとして使う OS のメモリ管理の仕組み。物理メモリ(RAM)の拡張として使用されるディスク上の領域。
      • swap in / swap out
    • 目的
      • RAM が不足した際に、使用頻度の低いデータを一時的にディスクに移動させ、より多くのメモリを確保する
      • RAM が不足した際に、すぐに OOM を発生しないようにする
    • 動作:必要に応じてデータを RAM とスワップ領域の間で移動させる

スワップに関するメトリクス

CloudWatch Agent で取得できるメトリクス

  • swap_free
    • 未使用のスワップ領域の量をバイト単位で示す。
    • 大きな値は、まだ多くのスワップ領域が利用可能であることを意味する。
  • swap_used
    • 現在使用中のスワップ領域の量をバイト単位で示す。
    • 大きな値は、多くのデータが RAM からスワップに移動されていることを示唆し、メモリ不足の可能性がある。