久しぶりの登場です、ソリューションアーキテクトの藤城(@tafujish)でございます。
遂にIDCFクラウドがリリースされました。新しくなった一番の特長としては、クラウドコンソールの操作がよりわかりやすく、さらにパワフルになったことです。併せて料金も魅力的な金額になっていると思います。
また、これまで通り品質と性能にはこだわって作っています。安くなっていますしどんどんベンチマークしていただきたいのですが、ツールによってはスコアが悪化してしまう可能性があります。そこで、今回はセルフクラウドの環境とIDCFクラウドの環境での性能を比較したいと思います。
ちなみに、10月15日にリリースした新しいクラウドは「IDCFクラウド」、これまでのクラウドは「セルフクラウド」です。IDCFクラウドとセルフクラウドは、プラットフォームが異なりますのでお間違えなく!
※以下の内容は、東日本リージョン1と西日本リージョン1にて影響します。東日本リージョン2では不具合は修正されていますのでそのまま実行いただけます。既存リージョンも将来バージョンアップによる解消を予定しています(2017.2.17追記)
UnixBenchではそのまま比較しない
これまでUnixBenchを用いたベンチマークを紹介してきましたが、そのまま実行するとIDCFクラウドの方がスコアが低くなります。
セルフクラウドのXL32(8vCPU @2.4GHz、32GBmem)とIDCFクラウドのStandard XL32(8vCPU @2.4GHz、32GBmem)は、スペック上は同等です。提供している物理CPUは、セルフクラウドはSandyBrigeでIDCFクラウドはIvyBridgeのXeonなのでクロックあたりの性能も大差は出ません。それなのに、IDCFクラウドの方がスコアが悪いのです。これは不具合によるもので、IDCFクラウドの開発段階での性能比較に際し、UnixBenchのスコアが低下することを発見しました。
ハードウェア、ソフトウェア両面から調査し、原因とその影響範囲の特定に約1か月を要しました。コードレベルまで調査し、特定の機能が有効になっている環境で、特定の命令を大量に繰り返し実行したとき、この不具合が発生することがわかり、併せて現実的なワークロードには影響が出ないことが確認できました。しかし、ベンチマークのパフォーマンス値に影響のある状況のためIDCFが責任をもって修正にあたっています。修正完了するまでは、ベンチマークの際はご注意ください。以降はこの事象を回避してベンチマークをする方法をご紹介します。
なお、この不具合が生じた後、性能劣化は継続し続けます。この状態を復旧させるには、仮想マシンを停止し、ポータルから仮想マシンを起動することで復旧可能です。OS上で再起動するだけでは復旧しませんのでご注意ください。
1) execlテストを除外しUnixBenchを実行
この不具合の影響を受けることが確認できているのはUnixBenchのExecl Throughputテストのみです。そのため、Execl Throughputを除外してUnixBenchを実行します。
●UnixBench通常実行の場合 # ./Run ●Execl Throughputテストを外し実行する場合 # ./Run dhry2reg whetstone-double fstime fsbuffer fsdisk pipe context1 spawn shell1 shell8 syscall
Execl Throughputテストを外し実行したスコアが次の通りです。
セルフクラウドのXL32(8vCPU @2.4GHz、32GBmem)とIDCFクラウドのStandard XL32(8vCPU @2.4GHz、32GBmem)では、スペック通りほぼ同等のスコアとなりました。セルフクラウドのM4(2vCPU @1.6GHz、4GBmem)とIDCFクラウドのHighCPU M4(2vCPU @2.6GHz、4GBmem)では、クロックが向上している分スコアも向上しました。
2) ASLRを無効化して
今回の不具合のトリガーの一つに、ASLR(Address Space Layout Randomization)が有効になっていることが挙げられます。これを無効にすると今回の不具合の影響は受けないため、正常なベンチマークスコアが得られます。ただし、ASLRはバッファオーバーフロー攻撃対策のセキュリティ機能のため、通常時は有効にすることを推奨します。ベンチマークのときのみ無効化し、完了後には有効化すると良いです。ASLRを無効化するには以下のように実行します。
●無効化するとき(不具合を回避するとき) # sysctl -w kernel.randomize_va_space=0 ●有効化するとき(通常時に戻すとき) # sysctl -w kernel.randomize_va_space=1
無効化した状態で、ベンチマークを実施したスコアが次の通りです。
1)の結果と同じ傾向が得られました。
3) 他のベンチマークツールで比べる
先述の通り、現時点で不具合の影響が出るベンチマークツールはUnixBenchのみです。そのため、UnixBench以外の他のベンチマークツールで比較すると良いです。ここでは、MySQLに対してSysBenchのOLTPで比較したときの例を紹介します。
UnixBenchではないと不具合の影響を受けないことがわかります。
まとめ
現在、一部のベンチマークツールにて性能劣化する不具合が確認されており、根本解決に向け鋭意対応中です。しかし、通常のワークロードでは今回の不具合の影響は受けませんので安心してご利用いただけます。UnixBenchをされる場合は、Execl Throughputテストを外すか、ASLRを一時的に無効化しベンチマークいただければ正しい値が取得できます。
以上のとおりややこしいですが、性能とコストパフォーマンスにはこだわってクラウドを作っていますので是非ベンチマークしていただきたいと思っています。 まずは1万円分のクーポンを使ってお試しください。
上記ベンチマークの値はCentOS6.5にて計測した値です。
<関連記事>
- 新しくなったIDCFクラウドの性能と注意点
- 最新! Xeon E5-2600 v2の性能
- UnixBenchでベンチマーク