仮想コア数に食いついてはいけない

仮想コア数……

VPSやクラウドを借りるにあたって、誰もが重視する要素としてvCore、つまり仮想コア数があります。
当然多ければ多いほど有利だと思われがちですが、これには落とし穴があります。

1コアあたりの性能は?

1コアあたりの性能に関しては、いずれの事業者ともクロック周波数を表示する形をとっていることがほとんどです。
ただし、一部の業者では表示していないか曖昧なことがあります。
クロック周波数が性能に直結するとは限らない以上、実際に性能を比較するには実際に契約してベンチマークをとるほかありません。
多くの業者を比較しても微々たる差であったり、作った時間帯によって変化することもあります。しかし、一部の事業者は1vCoreあたりの性能を異常に下げ、コア数を多く見せかけていることがあります。
私が出会ったそのような業者は2つです。いずれも海外の事業者です。

事業者A 20vCore=1vCore相当(閉鎖済み)

この事業者では、1か月約5000円で1vCoreを謳って仮想サーバーを貸し出していましたが、実際にログインしてみると20vCoreありました。つまり、CPU0~19が/proc/cpuinfoにある状態です。
しかし、セットアップ後にロードアベレージが既に2桁であることから不審に感じ、UnixBenchを実行した結果シングルコア性能が他事業者の約5%しかありませんでした。つまり1/20vCore相当が20コアで1コアであったわけです。
表記上1vCoreであったので問題ないのですが、シングルスレッド処理が重くなるという不利益があるため最終的に解約しました。現在この事業者はすでにサービスを提供していません。

事業者B 12vCore=2vCore相当

この事業者では、1か月約2500円で12vCoreを謳って仮想サーバーを貸し出していました。
当初は問題なかったものの、pngoutのようなシングルスレッド処理を実行した結果処理が遅いことから不審に感じ、UnixBenchを実行した結果シングルコア性能が他事業者の約15%しかありませんでした。つまり1/6vCore相当が12コアで実質2vCore相当だったわけです。
後述のNewRelic Infrastructureの導入を鑑み、コア数の極端に多いサーバーは課金体系上不利になるため解約しました。

1コアあたりの性能が低いことによる不利益

1コアあたりの性能が低い場合、シングルスレッド処理において処理が遅くなる問題が発生します。また、性能の低いコアで無理に処理をしているため処理待ちプロセスが増加し、結果としてロードアベレージが上昇する原因となります。


また、NewRelicのようにコア数によって変化する課金体系の場合、1コアあたりの性能が低い場合不利になります。
NewRelic InfrastructureやAPMにおいて、Cloud-basedな課金体系を使用している場合、CPUのコア数やメモリのギガバイト数によってCU(Computing Unit)、つまり課金対象の量が変化するのですが、それ以外の要素は一切勘案されません。
つまりCPUの性能、メモリの速度、ディスクの容量や種類、ネットワークの速度や転送量は一切関係ないことになります。ディスクが10GBだろうが1TBだろうが、CPUのコア数とメモリ容量が同じであればNewRelicへの支払総額は変化しません。
積んでいるCPUがAtom x7だろうが、Core i5だろうが、いずれも4コア4スレッドである限りNewRelicへの支払総額は同じく変化しません。

広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

広告