WS2008 R2と最新OS Azureでのサーバー構築
IIS7.5 vs IIS7.0、PHP5.2 vs PHP5.3 ~PHPのベンチマーク
IIS7.5からOSがWindows 7ベースになる一方、PHPはバージョン5.3がリリースされており、パフォーマンス的にいろいろ変わってきているのかなと思い負荷テストをしてみました。
ベンチマーク対象としては、ブログのOSSであるWordPressとWikiのOSSであるPukiwikiをインストールし、負荷ソフトはJMeterというツールを利用する事にしました。なお、WordPressで利用するMySQLは同一セグメント上につなげた別サーバー上に設置しています。ちなみに、測定対象マシンはインストールマニアックスで利用したNEC Express 5800/110Geをなにも拡張せず利用しています。
負荷のかけ方は、シンプルにWordPressとPukiwikiの両方でトップページのみ表示して、HTTPリクエストを時間と共に増やしていくという単純なものです。スループットが伸びなくなった時点の値を測定するという方式で複数回測定し、その平均値を測定結果としています。
IIS7.5 vs IIS7.0、PHP5.2 vs PHP5.3 ~PHPのベンチマーク結果
次にOSSアプリケーションごとに測定結果を表示します。
なお、すべての測定はRamp-up(全スレッドを何秒かけて作成する)を300、ウォームアップ時間0秒とした上で、開始からの累計値となります。また、WS2008 R2はRC版ですので、実際の製品とは結果が異なる可能性がある事はご了承ください。
■WordPressでの測定結果
WordPressは40スレッド+インターバルなしの状態での測定を行いました。結果は以下の通りです。
スループット(1秒当たり処理件数):
IIS7.0 (PHP5.2): 3.76/秒
IIS7.5 (PHP5.2): 3.65/秒
IIS7.5 (PHP5.3): 4.62/秒
平均レスポンス時間:
IIS7.0 (PHP5.2): 5,933ミリ秒
IIS7.5 (PHP5.2): 5,953ミリ秒
IIS7.5 (PHP5.3): 4,292ミリ秒
レスポンス中央値:
IIS7.0 (PHP5.2): 5,978ミリ秒
IIS7.5 (PHP5.2): 4,192ミリ秒
IIS7.5 (PHP5.3): 4,998ミリ秒
■Pukiwikiでの測定結果
Pukiwikiでは20スレッド+インターバルなしの状態でテストを行いました。
スループット(1秒当たり処理件数):
IIS7.0 (PHP5.2): 10.97/秒
IIS7.5 (PHP5.2): 10.54/秒
IIS7.5 (PHP5.3): 10.47/秒
平均レスポンス時間:
IIS7.0 (PHP5.2): 1,200ミリ秒
IIS7.5 (PHP5.2): 1,271ミリ秒
IIS7.5 (PHP5.3): 1,574ミリ秒
レスポンス中央値:
IIS7.0 (PHP5.2): 1,242ミリ秒
IIS7.5 (PHP5.2): 942ミリ秒
IIS7.5 (PHP5.3): 1,696ミリ秒
以上のテストデータから以下の事がわかります。
・IIS7.0からIIS7.5へのバージョンアップで、FastCGIの性能はスループットを基本とすると3~4%パフォーマンスが落ちてしまう。
・PHP5.2からPHP5.3へのバージョンアップは、WordPressでは27%性能向上したが、Pukiwikiでは逆に0.7%低下した。
・レスポンス中央値をみると、IIS7.0よりもIIS7.5の方が値が小さい(レスポンスが速い)
以上の事からまとめると、IIS7.0からIIS7.5への変更(WS2008からWS2008 R2への変更)によるパフォーマンスの向上はみられなかったものの、PHP5.2からPHP5.3への変更による効果はアプリケーションにもよりますが、大きくレスポンス時間が改善する可能性があるといえそうです。また、IIS7.0(PHP5.2)の構成では、レスポンス中央値がほかのケースと大きく異なっている事から、全体的にレスポンスが速いが、一部のリクエストに対して極端に時間がかかるケース場合があるといえそうです。
ただしPHP5.3は、PHP5.2では出なかった警告やエラーが出るといった異なる動きをするケースが多いため、既存アプリケーションのためのバージョンアップには、入念なテストが必要となるでしょう。