なお、計測結果は Apache Bench でチラ見した程度のものなので、ちょっとした目安程度に捉えてください。
Webサイトを作るときに
メニュー、ヘッダーやフッターなど、
全てのページの共通部分を括り出すために
SSI や PHP を使う場面があると思います。
単純に共通部分を括り出すのであれば
SSI と PHP のどちらでも目的を達成できます。
はたしてどちらを使うべきなのでしょうか。
結論から先に、乱暴に言い切ってしまうと
SSI を使うのが最良です。
ベンチマーク
レンタルサーバの一例として heteml (ヘテムル) で
実際にベンチマークをとってみました。
ベンチマークの計測対象として用意したのは以下の4つです。
【ケース1】
・index.php
・header.php
・footer.php
index.php 内で header.php と footer.php を相対パスで include_once します。
【ケース2】
・index.shtm
・header.shtm
・footer.shtm
index.shtm 内で header.shtm と footer.shtm 読み込みます。
【ケース3】
・index.html
ヘッダーとフッターの内容も込みで、予め全ての内容を一つの htmlファイルにまとめておきます。
つまり外部ファイルを読み込みません。
【ケース4】
・index2.php
ケース3と同じく予め全ての内容を一つの PHPファイルにまとめておきます。
つまり外部ファイルを読み込みません。
ケース1〜4 のいずれも、最終的には
同一の HTML をブラウザに返します。
これらに対して Apache Bench で
以下のように適当な接続数で3回ほど
ベンチマークをとってみました。
$ ab -n 100 -c 100 http://domain/index.html
※指定のURLに対して100回アクセスする。なお、同時接続数100。
計測結果を丸めると概ね以下のようなものとなりました。
【ケース1】 index.php + header.php + footer.php |
【ケース2】 index.shtm + header.shtm + footer.shtm |
【ケース3】 index.html |
【ケース4】 index2.php |
30 リクエスト/秒 |
200 リクエスト/秒 |
200 リクエスト/秒 |
30 リクエスト/秒 |
HTML と SSI はいずれも負荷が低く、
おおよそ毎秒 200 リクエストを処理できました。
PHP は負荷が高いようで、おおよそ
毎秒 30 リクエストを処理できました。
※共用サーバであるがゆえに、測定条件は常に不安定です。
※上記の値は時間帯や、共用サーバの同居人などの状況よっても変動します。
サーバによっては PHP はもっと速い
PHP はとても重い感じがしますが、
実は PHP アクセラレータの有無や種類によって
かなり処理性能が変わってきます。
PHP アクセラレータが使用できるサーバでは
PHP の性能が向上するからです。
共用サーバの細かい仕様まで調べるのは面倒ですし、
必要に応じて色々とインストールできるサーバは
メンテナンスが大変です。
ですから、ちょっと乱暴ですが、
話を単純化すると、共用レンタルサーバでは
・単純なHTMLがファイルがもっとも軽い
・WebサーバによってはSSIを使っても遜色ないくらい軽い
・PHPはいくぶん重いかもしれないので、SSIでは機能不足の場合にだけ使う
と覚えておくと良いと思います。
共用レンタルサーバでベンチマークをとるときの注意
ユーザにとってより使いやすくなるように、
そしてサーバへの負荷がなるべく低くなるように
工夫をすることは良いことだと思います。
そして、効果的な工夫をするためには
ベンチマークなどの測定をすることは有効です。
とはいえ、
ベンチマークはサーバに多大な負荷を掛けます。
以下のように通常ありうるレベルのアクセスから
おおよその限界値を掴むようにすると良いと思います。
$ ab -n 1 -c 1 http://domain/index.html
※1アクセス、同時接続数1。
$ ab -n 10 -c 2 http://domain/index.html
※10アクセス、同時接続数2。
$ ab -n 50 -c 10 http://domain/index.html
※50アクセス、同時接続数10。
あまり大きな数を設定すると
サーバダウンということもあり得ますので
無茶なことはなさいませんようお願いします。
お問い合わせについて
業務として技術コンサルティングやシステム設計・開発を行っております。
気になることがありましたらご相談下さい。
ご相談のみで完結する場合、コンサルティング費用の目安は
内容によりますが1時間で5千円〜1万円ていどです。
コンサルティングや開発を検討されるその前に、
まずはお気軽にコメントやメールでご連絡下さい。
※ご契約前のコメントやメールでのやりとりは無料です。