ApacheBenchなる便利な測定ツールを知ったので、ちょうど懸案になっていた「さくらVPS」と「IIJ GIOクラウド」のベンチマークをとってみました。
さらに「Apache」と「nginx」も比較してみたので、これらの考察です。
結論からいうと、
- スケーラビリティを捨ててコストパフォーマンス優先の「さくらVPS」が良さそう
- よく言われているようにリクエスト数が多いほどnginxのほうが良さそう
です。
もちろん前提条件と誤差は含むので、今回の結論は将来的に変わる可能性はあります。
◆前提条件
- ApacheBenchはローカルPCから実行
- ホスト名はローカルPCのhostsで名前解決(DNSレスポンスの違いを排除)
- サブドメイン3文字でホスト名を区別(コンテンツ内のURL長を等しく)
- ネット環境は光100Mbps
- 同時接続100で合計400リクエスト実行[$ ab -n 400 -c 100 http://???.example.com/]
- 対象サービスは次の4パターン
- さくらVPS 2G/nginx
- 同/Apache
- IIJ GIOクラウドV160/Apache
- 同V10/Apache
- ベンチマーク対象コンテンツはPHPで700KB弱
- DB処理は無いがファイルOPEN(READのみ)と文字列処理あり
- Apache
、nginxともに意図的なチューニング無し - バージョン(とくにApache)に意図無し
- nginxはProxy構成
- nginxは仮想3コアにチューニング済み
◆ベンチマーク結果[さくらVPS 対 IIJ GIOクラウド]
◆考察
上記結果の青がベスト値、赤がワースト値です。
総括は一目瞭然で、さくらVPS[2Gプラン]のApacheが圧倒的に青一色です。IIJ GIOクラウドのV10は真っ赤です。
特 筆すべきは月額34,000円(キャプチャの①)もするIIJ GIOのV160が同V10と比べてCPUとメモリが16倍(②)、帯域も約7倍(③)の割に1秒あたりのリクエスト数(⑧)/総転送レート(⑨)ともに 約2倍程度でしかない点でしょうか。費用は8倍以上なのに・・・
さくらのVPSが圧倒的にお得
つまり、現行選択可能な最 高スペック(V240は選択不可でしたのでV160)を以てしても、さくらVPS 2Gプランのほうがコスト&パフォーマンスともに断然すぐれているので、30分程度でスケールアップ/ダウンが可能なIIJのGIOクラウドですが、私が 必要な用途向きではないことがわかったのが、とても収穫です。
また、同時接続100/合計400リクエスト(この理由は後述)におけるさくらVPSに限定した比較では、設定が意図的に有利なはずのnginxよりApacheに軍配が上がっています。同時接続100/合計1000リクエストは別途まとめます。
帯域がボトルネックではない
さくらVPS/Apache、V160、V10それぞれ転送レートが9,300、8,300、3,700Kbyte/sec(⑨)ですのでbps換算(byte→bitで8倍)だと72Mbps、64Mbps、29Mbpsです。
こ の帯域が結果を左右しているわけではなさそうです。
それは、こちらのローカル環境が100Mbpsとはいえ、さくらVPSとIIJ V160では共用100Mbpsと専有200Mbpsの理論値と実測値(72Mbpsと64Mbps)が逆転している点、そもそもこの転送レート(⑨) は、
総HTML転送量(⑦と⑧の間の数値) ÷ 総実行時間(⑤と⑥の間の数値)
という単純計算と思われるためです。
つまり、V10は理論値30Mbpsに対して実効29Mbps出ているのでHTTPリクエストの処理性能としてバランスがとれている、または帯域がボトルネックという可能性を含みますが、いずれにしてもV160(理論値200Mbpsに対して実効64Mbps)がさくらVPS 2Gに帯域(理論値は共有100Mbpsに対して実効72Mbps)ほかの結果が劣っているわけです。
ま た、今回同時接続100/合計400リクエストで比較したのは、合計1000リクエストの途中(それが400リクエスト)でIIJ GIOがほぼフリーズしてしまい、ログイン済みのSSHコンソール操作はおろか、新たにログインも不可となり、コンパネから強制リブートが必要だったため です。
アテにならないIIJ GIOクラウドのスケーラビリティ
GIOクラウドのCPU換算単位であるICUというのも 意味不明なものの、Apacheのマルチコア対応設定が必要(16ICUが活かせていない)なのか?とも考えましたが、SSHログインすら不可となってし まったことと、さくらVPSも仮想3コア対応の設定は施していない(そもそもそういうジャストな設定があるのかもよくわかりません)ので、GIOクラウド のスペック値(同サービス内の相対比較および他社サービスとの相対比較)はWebサーバ用途では期待してはいけないようです。
もしかすると、さくらが圧倒的にすぐれているのかも知れませんが、現時点ではこれ以上の比較対象がないためわかりません。
◆課題
今回の100/400テストは数ラウンドずつ実行(結果はとくに意図なく採用)しているものの、当然若干のブレはあるので、ラウンド数を増やして再検証したい。
結果を簡単に比較できるようなエクセルチャートを作ろうかと。
また、純粋なベンチマークも検証しておきたい。UnixBenchが良いのかな?
No comments yet. You should be kind and add one!
By submitting a comment you grant typista a perpetual license to reproduce your words and name/web site in attribution. Inappropriate and irrelevant comments will be removed at an admin’s discretion. Your email is used for verification purposes only, it will never be shared.