【レポート】
Apacheをインストールすると、自動的に次のような動作確認用のドキュメントがDocumentRootディレクトリに置かれる。
![]() |
|
Apacheの動作確認用のドキュメント |
このドキュメントは1,456バイトのHTMLファイルだ。まずはこの小さなドキュメントへのリクエストをabから発行し、性能を測ってみよう。次のように、合計10,000回のリクエストを並列度100で発行してみた。
abはテスト結果から様々な統計情報を出力してくれるが、性能を測る指標としては、1秒間に処理したリクエストの数を表す「Requests per second」の値を見るとよい。それぞれ10回試行し、中間の値をとった結果は以下のようになった。
table-1 : 静的ドキュメントへのリクエスト 10,000回、並列度100
| カーネル | 2.4.26 | 2.6.5 | |||
|---|---|---|---|---|---|
| Hyperthreading | 無効 | 有効 | 無効 | 有効 | |
| Apache | 1.3.29 | 737.84 | 824.47 | 758.38 | 827.81 |
| 2.0.49 | 1344.27 | 1684.35 | 1399.97 | 1721.76 | |
| graph-1 : 静的ドキュメントへのリクエスト 10,000回、並列度100 |
|---|
![]() |
Apache 1.3とApache 2.0の性能差は明らかで、Apache 2.0が旧バージョンの概ね2倍強の処理性能を発揮している。また、HTによる性能の向上も顕著だ。SMPカーネルを使用した場合、シングルプロセッサ用のカーネルに比べて、Apache 1.3で10%程度、Apache 2.0では25%も高速になるという結果が出た。
Apacheのバージョン間やHTの有効・無効の差と比べると、カーネル2.4とカーネル2.6の差は予想したほど大きくは表れなかったが、全てのテストでカーネル2.6がカーネル2.4の速度をわずかずつ上回った。
静的コンテンツへのリクエストでは、10,000回、並列度100で実行しても、プロセッサの最大使用率は75%程度にしかならない。サーバサイドでスクリプトを実行する動的なコンテンツを使って、もう少しプロセッサに負荷をかけてみよう。動的コンテンツの実現方法にはCGIやJava Servletなど様々なものがあるが、今回は「PHP」のバージョン4.3.6を使ってみた。PHPはApache 1.3、Apache 2.0ともにDSOモジュールとしてロードされる設定とし、PHPスクリプトは、GETメソッドで与えられた指示回数だけ、srand()関数、rand()関数を使って繰り返し乱数を生成するものとした。
rand.php
abからこのスクリプトに対するリクエストを、10,000回、並列度130で送ってみる。GETメソッドで与える繰り返し回数は1,000回とした。
各環境でのテストを10回ずつ行い、中間の値をとった結果は以下のようになった。
table-2 : 動的ドキュメント(PHPスクリプト)へのリクエスト 10,000回、並列度130
| カーネル | 2.4.26 | 2.6.5 | |||
|---|---|---|---|---|---|
| Hyperthreading | 無効 | 有効 | 無効 | 有効 | |
| Apache | 1.3.29 | 116.43 | 108.93 | 108.29 | 116.87 |
| 2.0.49 | 111.79 | 103.74 | 105.76 | 122.43 | |
| graph-2 : 動的ドキュメント(PHPスクリプト)へのリクエスト 10,000回、並列度130 |
|---|
![]() |
まず、カーネル2.6でHTを有効にした場合以外は、総じてApache 1.3がApache 2.0を上回った。ただ、これはPHP4がもともとApache 1.3を前提プラットフォームとしていることを考えれば、至極当然の結果でもある。PHPの多くのライブラリは未だスレッドセーフでなく、Apache 2.0上での運用は推奨されていない。HTを有効にしたカーネル2.4で、性能が向上するどころか低下してしまっているのも、PHPがマルチスレッド環境を考慮してプログラミングされていないためだろう。つまりこの結果は、HTにしてもApache 2.0にしても、それに適したマルチスレッドなアプリケーション実行環境が用意されなければ、本来の性能を発揮できないということの表れと考えられる。PHP5へのメジャーバージョンアップを控え、Web用スクリプト言語のスタンダードとして、PHPが今後このあたりをどう改善していくかにも注目したいところだ。なお、唯一カーネル2.6でHTを有効にした場合だけは性能の向上が見られるが、これは、プロセッサへの負荷が高い処理におけるカーネル2.6の強さが出たと考えることができるのではないだろうか。
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
激シブ!もう一度ゴルフ Ⅱ の魅力を味わってみませんか?【大阪オートメッセ2012】 [03:06 2/11] キャリア |
|
『ヘタリア』キャラソン、新シリーズが配信決定! [03:05 2/11] キャリア |
|
全国の温泉を擬人化したドラマCD、第1弾「草津」は櫻井孝宏さん! [03:05 2/11] キャリア |
|
柿原徹也さんの2ndミニアルバム「CONTINUOUS」2月15日発売 [03:04 2/11] キャリア |
|
アニメ「Fate/Zero」陣営ごとのお守りが発売決定 [03:03 2/11] キャリア |