クラウドコンピュート

vCPU ぶいしーぴーゆー

vCPU仮想CPUコアハイパースレッディング処理能力EC2
vCPUについて教えて

簡単に言うとこんな感じ!

クラウドの仮想マシンに割り当てる「仮想のCPUコア」のこと。物理CPUの論理的な分割で、多いほど並列処理が速い。ただし「vCPU数=物理コア数」ではないから、ベンチマークで実力を確かめるのが大事だよ。


vCPUとは

vCPU(Virtual CPU)とは、仮想マシンに割り当てられる仮想的なCPU処理単位のことです。クラウドプロバイダーは物理サーバーの1つのCPUスレッド(または論理コア)を1vCPUとして提供することが多く、ハイパースレッディングを有効にした物理コアは2つのvCPUとして提供されます。

vCPU数は仮想マシンの並列処理能力に直結します。シングルスレッドのアプリケーションではvCPUが多くても効果は限定的ですが、Webサーバーのように多数の同時リクエストを処理する用途では、vCPUが多いほどスループットが向上します。

ただし、vCPUは物理CPUとは異なり「ノイジーネイバー問題」(同じ物理ホスト上の別VMのCPU使用率の影響を受ける)が起こることがあります。安定した性能が必要な場合はDedicated HostベアメタルインスタンスでCPUを占有します。


vCPUと物理コアの関係

物理構成論理コア数vCPU数(一般的)
物理コア1(HT無効)11 vCPU
物理コア1(HT有効)2(論理コア)2 vCPU
物理コア64(HT有効)128最大128 vCPU分

インスタンスサイズとvCPU数の例(AWS EC2 m7i系)

インスタンスvCPUメモリ用途目安
m7i.large28 GB小規模Webアプリ
m7i.xlarge416 GB中規模API
m7i.2xlarge832 GB中規模DBレプリカ
m7i.4xlarge1664 GB大規模アプリ
m7i.16xlarge64256 GB大規模DB・分析
m7i.metal-48xl192768 GBベアメタル相当

歴史と背景

インテルが2002年にHyperThreading(同時マルチスレッディング)を導入し、1つの物理コアで2スレッドを処理できるようになりました。これが「論理コア」の概念を生み、クラウドでのvCPU提供の基盤となりました。

2010年代後半から、AMDのEPYCプロセッサがコア密度・コスト効率でIntel Xeonを上回るようになり、AWSのm5aシリーズなどAMD搭載インスタンスが登場しました。さらに2018年以降はAWS GravitonのようなARMベースの独自プロセッサが「vCPUあたりのコスト効率」を大幅に改善しています。


vCPU数と処理性能の関係

vCPU数とスループットの関係(概念図) vCPU数 スループット マルチスレッドアプリ シングルスレッドアプリ 2 4 8 16 32 シングルスレッドではvCPUを増やしても効果は限定的

関連する規格・RFC

規格内容
Intel VT-x / AMD-VCPUレベルの仮想化支援機能の仕様
NUMA(Non-Uniform Memory Access)マルチソケットCPUのメモリアクセス最適化

関連用語