質問
仮想化技術のオーバーコミットはだいたいどのくらいオーバーすることができますか? 現実的な数値を教えてください。 |
解答
いい質問です。 「オーバーコミットはどこまで許容できるか?」は リソースの種類(CPUかメモリか)、ワークロードの特性 に大きく左右されます。 現実的な目安を整理します。 1. CPUのオーバーコミット 目安 * 一般的なエンタープライズ環境では vCPU : pCPU = 4:1 ~ 8:1 程度が現実的。 * つまり、物理コア1つに対して4~8個の仮想CPUを割り当てる。 背景 * ほとんどのVMはCPUを常時100%使わないため、かなり水増しできる。 * 特にWebサーバやVDI(デスクトップ仮想化)のようにバースト利用が多い環境では高倍率でも安定。 リスク * バッチ処理やDBサーバのようにCPUを占有するVMが多いと性能劣化。 * コンテキストスイッチが増えてレイテンシが悪化する。 2. メモリのオーバーコミット 目安 * 1.2倍~1.5倍程度 が現実的な上限。 * 物理メモリ 64GB なら、VM合計で 80~96GB くらいまで。 背景 * メモリはCPUと違って「貸した分を常に確保する」性質が強く、過剰にオーバーコミットするとすぐスワップに落ちてパフォーマンスが極端に悪化する。 * VMware や KVM では メモリバルーニング(Ballooning) や メモリ圧縮 を活用して多少水増し可能。 リスク * 物理メモリ不足時にはスワップ発生 → I/O遅延 → 最悪VM停止。 * DBやキャッシュ系ワークロード(Redis, Oracle, PostgreSQL など)はオーバーコミットに非常に弱い。 3. 実際の現場での運用感 * CPUは思った以上に盛れる、メモリはシビア。 * CPU: 4:1 ~ 8:1 は普通。 VDI環境では 10:1 以上にする事例もある。 * メモリ: 1.5倍を超えるとリスクが急増。 2倍以上は実験環境や低重要度システム向け。 4. まとめ * CPUオーバーコミット: 4~8倍が一般的(用途によっては10倍以上も可) * メモリオーバーコミット: 1.2~1.5倍程度が現実的限界 * 本番システムでは「メモリは控えめ、CPUは積極的にオーバーコミット」が基本戦略 |
|
|
この記事へのコメント