「さくらVPS」と「IIJ GIOクラウド」のベンチマークで、圧倒的にすぐれていた「さくらVPS」に限定し、さらに「Apache」と「nginx」も比較しました。

結論からいうと、

 

リクエスト数が多いほどnginxのほうがパフォーマンスに優れている

 

です。

もちろん前提条件と誤差は含むので、今回の結論は将来的に変わる可能性はあります。

 

◆前提条件

  1. ApacheBenchはローカルPCから実行
  2. ネット環境は光100Mbps
  3. 同時接続100で合計1000[400]リクエスト実行[$ ab -n 1000 -c 100 http://???.example.com/]
  4. 対象サービスは次の4パターン
    • さくらVPS 2G/nginxで400リクエスト(前回の結果)
    • 同1000リクエスト
    • さくらVPS 2G/Apacheで400リクエスト(前回の結果)
    • 同1000リクエスト
  5. ベンチマーク対象コンテンツはPHPで700KB弱
  6. DB処理は無いがファイルOPEN(READのみ)と文字列処理あり
  7. Apacheに意図的なチューニング無し
  8. バージョン(とくにApache)に意図無し
  9. nginxはProxy構成
  10. nginxは仮想3コアにチューニング済み

 

◆ベンチマーク結果[nginx 対 Apache@さくらVPS]


※クリックで拡大

 

◆考察

上記結果の青がベスト値、赤がワースト値です。

総括は一目瞭然で、nginxで合計1000リクエストが圧倒的に青一色です。同様にnginxだが400リクエストは真っ赤です。

合計リクエストが多いほどnginxの性能が上がる!?

合計400リクエストのベンチマーク結果は前回のものを採用しているため、総合するとIIJ GIOクラウドのV160で合計400リクエストを実行するよりも、さくらVPS 2Gで合計1000リクエストを実行したほうが、すぐれているとか、もっとシンプルには同じnginxなのに合計400リクエストより1000リクエストのほうが性能が上がっている(少なくともベンチマーク結果では)という本当に信じてしまって良いのか?という状態です。

ちなみに前回、同時接続100/合計400リクエストとしたのはIIJ GIOクラウドの限界によるものでしたが、さくらVPSは2拠点からの同時接続100/合計1000(実質同時200/合計2000→もはやDDoS攻撃!?)さえ、フリーズすることなく捌いていました。

その結果は、改めて複数ラウンドの比較をするときにまとめます。

 

◆課題

とにかく、ラウンド数を増やして再検証が必要。

結果を簡単に比較できるようなエクセルチャートが間もなく完成します。

また、UnixBenchで純粋なベンチマーク中です。