1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Compute EngineでOps Agentなしで「メモリ使用率」が見れない理由を、仮想化の仕組みから解説する

Last updated at Posted at 2026-01-12

はじめに

Google Cloud (Compute Engine) でVMインスタンスを立てたとき、多くの人が直面する疑問があります。

「標準のモニタリングタブで CPU使用率は見えるのに、なぜメモリ使用率は『N/A』や『データなし』なんだ?」

解決策として「Ops Agentをインストールしましょう」という手順はよく出てきますが、この記事では 「なぜエージェントが必要なのか?」 という理由を、仮想化技術(ハイパーバイザー)のアーキテクチャという観点から深掘りして解説します。

結論:誰がその情報を見ているか

エージェントの有無による取得メトリクスの違いは、 「ハイパーバイザー(Google側の基盤)から見て、VMの中身が見えているか、見えていないか」 という境界線によって決まります。

図で表すと以下のようになります。

[ Google Cloud 基盤 (ハイパーバイザー) ]  <-- ここから見えるのが「標準メトリクス」
      ↓
      ↓ (仮想化の壁)
      ↓
[ VM インスタンス (ゲストOS) ]          <-- ここからしか見えないのが「エージェント必須メトリクス」

1. エージェントなしで取得できるもの

= ハイパーバイザーから見える「物理リソースの供給量」

Google Cloud の基盤にとって、あなたが作成したVMは「ひとつの巨大なブラックボックス」です。箱の中で何が起きているかは分かりませんが、「その箱にどれだけリソースを供給したか」 という物理的な入出力(I/O)は外側から計測可能です。

これらが、エージェントなしで取得できる標準メトリクスです。

  • CPU使用率: ハイパーバイザーがそのVMに割り当てたCPUサイクル数
  • ディスクI/O: 仮想ディスクに対して行われた読み書きの回数や転送量
  • ネットワーク: 仮想NICを通過したパケット数

【イメージ】
電力会社(Google)は、あなたの家(VM)が「どれくらい電気を使ったか(CPU/Network)」は外のメーターで分かります。しかし、家の中で「ドライヤーを使っているのかテレビを見ているのか」までは分かりません。

2. エージェントがないと取得できないもの

= ゲストOSしか知らない「論理的な管理状況」

VM内部で動いている ゲストOS(LinuxやWindows)のカーネル が管理している情報は、ハイパーバイザーからは隠蔽(抽象化)されているため、外からは見えません。
これを知るためには、家の中にスパイ(エージェント)を送り込んで、内側からレポートを送ってもらう必要があります。

代表的なのが以下の2つです。

A. メモリ使用率 (Memory Utilization)

ここが最大のポイントです。なぜCPUは見えるのにメモリは見えないのでしょうか?

  • ハイパーバイザーの視点:
    VMに「メモリ16GB」を割り当てると、物理メモリ上の領域を確保してVMに渡します。ハイパーバイザーからは、そのメモリ領域に「何かデータが入っている」ことまでは分かりますが、それが「重要なデータ」なのか「ただのキャッシュ」なのか「実はゴミデータ」なのか区別がつきません。
  • ゲストOSの視点:
    確保された16GBの中で、「アプリが使用中」「キャッシュとして利用中」「空き(Free)」という論理的な管理を行っています。

「メモリの空き容量」という概念はOSが管理している帳簿上の話であり、物理的な電気信号だけを見ているハイパーバイザーには理解できないのです。

B. ディスク使用率 (Disk Space Usage)

  • ハイパーバイザーの視点:
    「100GBのブロックデバイス(ハードウェア)」を提供しているだけです。
  • ゲストOSの視点:
    その上にファイルシステム(ext4やNTFSなど)を作成し、ファイルを管理しています。

ディスクへの読み書き(I/O)自体は外から見えますが、「ファイルシステムの残り容量があと何%か」 という情報は、ファイルシステムの管理テーブル(iノードなど)を見なければならず、これはゲストOSの管轄です。

まとめ

違いを表に整理します。

分類 視点 仮想化の壁 取得できるもの (例) 取得できないもの (例)
標準
(エージェントなし)
ハイパーバイザー
(Google基盤)
壁の外側
(ハードウェア層)
・CPU使用率
・ネットワーク通信量
・ディスクI/O (速度)
・メモリの中身や内訳
・ディスクの残り容量
・プロセス単位の情報
カスタム
(エージェントあり)
ゲストOS

(VM内部)
壁の内側
(OS/アプリ層)
メモリ使用率
ディスク使用率
・スワップ使用量
・アプリのログ
(特になし)
※OSが見える情報は全て取得可能

おわりに

「なぜメモリ監視にエージェントが必要なのか?」という疑問は、クラウドを利用する上で非常に本質的な問いです。

それは単なるGoogle Cloudの仕様というだけでなく、「インフラ(ハイパーバイザー)は、OS内部の論理構造(メモリ管理やファイルシステム)には関与しない」 という仮想化技術のデカップリング(分離)の原則が働いているからです。

これからVMを立てる際は、「OSの中身(メモリやディスク容量)を知りたければ Ops Agent が必要」とセットで覚えておくと設計がスムーズになるはずです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?