【IT】CPUの物理と論理と仮想のお話

ガチオンプレインフラ設計者が仮想化を考えた時にハマるのがここではないでしょうか(少なくとも私はハマりました)

 

物理CPU:名前の通り、物理的なCPUの数。マザーボードに設けられたソケットにプスっとささっているアレ。

 

コア数:CPUの処理単位。昔は1物理CPU=1コアだったが、現在はマルチコア(1物理CPUに複数のコアを設け並列処理ができるようにする)が主流。

 

論理CPU:複数スレッドにより、1つのコアの中で同時に複数の命令列を実行するための機能。

 

マルチコアとマルチスレッドは何が違うんだという感じですが、マルチスレッドは、見かけ上はマルチコアのように振る舞うものの、実際にはスレッド制御により1コアのプロセッサ内でリソースを融通しあって動作しているため、純粋なマルチコアシステムよりは性能はいくらか劣る傾向があるようです。

お金があればコア数多いお高いCPUを多めに積むけれど、そうでなかったら論理CPU増やして賄う、というところでしょうか。

 

では仮想CPUとはなんぞや。

 

仮想CPU:ハイパーバイザ型の仮想化環境で用いられる概念。物理CPUの処理能力を分割し、ハイパーバイザ上の仮想マシンに割り当てたもの。

 

物理CPU1個が割り当てられた1台のハイパーバイザ上に仮想マシンが10台の環境がある時、物理的には1つのCPUしか搭載していないけれど、それを10個に分割して見せることで、一つ一つの仮想マシンからはそれぞれ1つのCPUが割り当てられているように見える=仮想マシン全体で10個のCPUがあるように見える、ということ。

 

※ホストOS型仮想化環境については割愛

 

 

昔々CPUが高額だった頃にはいかに適正に見積もるか、足りなくなったら誰がどう調達するのか、なんて喧々諤々することもありましたが、今はちょっと足りなくなったら「よし、追加するか」が簡単にできるようになって便利なものです。

お安くなったお陰でオンプレでも多めに見積もりやすくなりましたし。

 

もっと技術が進めば、CPUだメモリだなんて意識することもなくなる日がくるかもしれませんね。