HTML、SSI、PHP はそれぞれサーバをどれくらい重くするか

HTML、SSI、PHP がサーバにとってどのくらい負荷になるのか、それはサーバによって大きく異なります。そうはいっても、ありがちな共用レンタルサーバではどうなのかは気になるところです。一例として heteml (ヘテムル) で実際にベンチマークを簡単にとってみました。ざっくりとした目安としては、HTML が最軽量であるものの、SSI の利用は HTML とくらべて遜色ないくらいに十分軽く、PHP は重いというものでした。単位時間あたりに処理できるリクエスト数の目安は PHP に対して SSI が 6〜7 倍良好でしたので、PHP の機能が特に必要でなければ SSI を使う方が良いでしょう。
なお、計測結果は 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万円ていどです。
コンサルティングや開発を検討されるその前に、
まずはお気軽にコメントやメールでご連絡下さい。
ご契約前のコメントやメールでのやりとりは無料です。

お問い合わせフォーム

お急ぎの場合など、ただちに業務対応が必要な場合は、こちらのお問い合わせフォームをご利用ください。かきしちカンパニーお客様窓口が直ちに対応いたします。
※窓口へのお問い合わせ、お見積もりは無料です。


お名前 (必須)

メールアドレス (必須)

題名

メッセージ本文 (必須)

Share

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*