CPUを適切に利用しないと、仮想マシン(VM)の処理速度が低下する場合がある。VMの快適な動作を実現するための、CPU活用のポイントを説明する。
仮想マシン(VM)を快適に運用するには、VMを稼働させるサーバの「CPU」(中央処理装置)を適切に利用することが大切だ。本稿は、VM運用時のCPUに関する注意点を整理する。
「ハイパースレッディング」は、CPU内の1つのコアで、複数のプロセス(プログラム)を並列で実行可能にし、CPUリソースの無駄遣いをなくす機能だ。ただし必ずしもCPUの処理速度を向上させるとは限らない。
ハイパースレッディングの問題点は、1つのコアが処理するプロセスは、同じキャッシュメモリを共有することにある。そのためプロセス間でキャッシュメモリの競合が発生し、データ処理のボトルネックになる可能性がある。
CPUを選定するときは、ユーザー企業はハイパースレッディングを利用できるかどうかではなく、コア数が十分かどうかを重視するとよい。ハイパースレッディングによって少ないコアで複数のアプリケーションを稼働させるよりも、コア数の多いCPUを購入し、ハイパースレッディングを無効にする方が効率的な場合があるからだ。
仮想化ソフトウェアの「ハイパーバイザー」は、VMが利用する仮想メモリのアドレスを、物理メモリのアドレスに変換する。こうしたアドレス変換は、CPUリソースを消費しやすい。アドレス変換の結果、VMの処理速度が低下することは、よくある問題だ。
CPUの仮想化支援機能「Second Level Address Translation」(SLAT)は、通常であればハイパーバイザーを介して実行するアドレス変換を、CPUが直接実行する技術。アドレス変換時のCPUリソース使用量を抑え、データの処理速度を向上させる。
IntelはSLATを「Extended Page Tables」(EPT)、AMD(Advanced Micro Devices)は「Rapid Virtualization Indexing」(RVI)と呼ぶ。CPUでSLATを有効にするために、OSの起動を制御するBIOS(Basic Input/Output System)で設定する必要がある。
CPUの負荷が高いアプリケーションをVMで稼働させる場合は、仮想CPU(vCPU)の割り当てに気を付ける必要がある。アプリケーションによって、CPUリソースの要件は異なる。機能が単純なアプリケーションは1個のvCPUで正常に動作するとしても、データベース管理システム(DBMS)やメールサーバなど、集約的なアプリケーションは、4個以上のvCPUを必要とする場合がある。
必要なvCPUの数を計算するために、まずはアプリケーションが必要とするCPUの数と、同じ数のvCPUを割り当てる。例えばアプリケーションが2個のCPUを必要とする場合は、2個のvCPUを割り当てて動作を監視し、追加のvCPUが必要かどうかを判断する。処理負荷が特に高い場合は、異なるコアのvCPUを割り当てて負荷分散を図る。
第4回は、IntelとAMD、IBMが提供する、VMに適したCPUを紹介する。
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
フォルクスワーゲンがGoogleとタッグ 生成AI「Gemini」搭載で、何ができる?
Volkswagen of AmericaはGoogleと提携し、Googleの生成AI機能を専用アプリ「myVW」に導入...
JAROに寄せられた「広告への苦情」は50年分でどれくらい? 業種別、媒体別の傾向は?
設立50周年を迎えた日本広告審査機構(JARO)が、これまでに寄せられた苦情を取りまとめ...
データサイエンティストの認知率は米国6割、インド8割 さて、日本は?
データサイエンティスト協会は、日本と米国、インド、ドイツの4カ国で、データサイエンテ...