手当たり次第に書くんだ

飽きっぽいのは本能

VM パフォーマンス設計ガイド

VM の性能は、vCPU を増やす、HugePages を有効にする、SR-IOV や DPDK を導入するといった個別設定だけでは判断できません。ホストの物理資源をどの VM と共有するのか、NUMA をまたぐのか、I/O がどの処理経路を通るのかを確認する必要があります。

このガイドは、VM パフォーマンス関連記事を、測定、CPU、メモリ、ストレージ I/O、ネットワーク I/O、仮想化レイヤの迂回という順序で読むための入口です。症状を測定せずに高度な機能へ進まず、ボトルネックと運用上の制約を確定してから設計を変更します。

最初に読む記事

測定してから変更する

領域最初に見る指標判断したいこと
CPU使用率、run queue、steal、vCPU 待ち時間CPU が不足しているか、スケジューリング待ちか
NUMA / メモリNUMA locality、page fault、swap、メモリ帯域遠隔 NUMA アクセスやメモリ不足があるか
ストレージlatency、IOPS、throughput、queue depth媒体、キャッシュ、形式、キューのどこが詰まるか
ネットワークpacket rate、drop、再送、queue、CPU 使用率帯域不足か、パケット処理経路の限界か
アプリケーション処理時間、tail latency、同時実行数基盤変更で改善すべき症状か
  • 変更前後で同じワークロードと測定時間を使う
  • 平均値だけでなく p95 / p99、jitter、drop、再送を見る
  • ホストとゲストの両方で測定する
  • 複数項目を同時に変更せず、差分と効果を対応付ける
  • 性能だけでなく、可搬性、冗長化、保守性、障害復旧への影響も記録する

全体像とボトルネックを確認する

CPU / vCPU / NUMA

vCPU 数は、VM が使える処理能力だけでなく、ホストスケジューラが同時に実行すべき単位を増やします。物理コア数、SMT、NUMA、オーバーコミット、他 VM との競合を確認してから割り当てます。

メモリ / HugePages / TLB

HugePages は TLB miss を減らす手段ですが、メモリ不足や不適切な NUMA 配置を解消する機能ではありません。予約量、ゲストメモリ、NUMA node、起動順序、他ワークロードへの影響を合わせて見ます。

ストレージ I/O

ストレージ性能は、raw / qcow2 の形式だけでは決まりません。virtio-blk / virtio-scsi、キャッシュ、discard、I/O engine、ホストファイルシステム、バックエンドストレージまで処理経路を確認します。

ネットワーク I/O の処理経路

ネットワーク高速化は、virtio-net、vhost-net、vhost-user、SR-IOV、DPDK の順に置き換えればよい話ではありません。処理経路を短くするほど性能を得られる場合がある一方、ライブマイグレーション、可観測性、Firewall、QoS、HA、ハードウェア依存の制約が増えます。

方式主な処理場所向いている場面主な制約
virtio-netQEMU とホスト kernel一般的な VM標準経路の CPU 負荷と queue 設計
vhost-netホスト kernelvirtio の処理を効率化したいkernel 内の処理とチューニング
vhost-useruserspace dataplaneOVS-DPDK などと連携する構成、ソケット、NUMA、運用の複雑化
SR-IOV / Passthrough物理 NIC または VF低遅延と高 packet rate物理 NIC、IOMMU、移行性、可観測性
DPDKuserspace dataplaneNFV や専用パケット処理専有 CPU、HugePages、NUMA、運用設計

Ubuntu / KVM で確認する

このカテゴリは判断基準と処理経路を中心に扱います。Ubuntu 26.04 / KVM で VM を作成し、HugePages、virtio、io_uring などを確認する手順は、次の記事へ接続します。

読む順序

段階読むテーマ判断すること
1ボトルネック症状と制約を測定できているか
2vCPU / NUMA実行待ち、配置、共有資源に問題があるか
3メモリ / HugePagesTLB と NUMA locality を改善する必要があるか
4ストレージ I/O形式、キュー、キャッシュ、バックエンドのどこが詰まるか
5virtio / vhost標準的な仮想 I/O 経路で要件を満たせるか
6SR-IOV / DPDK可搬性と運用性を手放しても迂回が必要か
7再測定変更による改善と副作用を説明できるか

設計時に残す記録

  • 変更前後のワークロード、測定条件、主要指標
  • ホスト CPU topology、NUMA node、メモリ配置、VM の vCPU / memory 定義
  • ストレージとネットワークの処理経路
  • pinning、HugePages、IOMMU、VF、専有 CPU などの予約資源
  • ライブマイグレーション、バックアップ、監視、障害復旧への影響
  • 変更を戻す条件と設定バックアップ

まとめ

VM パフォーマンス設計では、最初に症状を測定し、CPU、NUMA、メモリ、ストレージ、ネットワークのどこが制約かを確定します。設定を増やすことではなく、物理資源の共有範囲と I/O の処理経路を説明できることが重要です。

一般的な VM は virtio と共有資源で要件を満たせる場合があります。pinning、HugePages、SR-IOV、DPDK は、測定結果と要件から必要性を説明できる時に導入し、性能と引き換えに増える可搬性・保守性・障害復旧の制約まで確認します。

VM パフォーマンス設計ガイド

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る