当ブログは移行しました。

http://www.symmetric.co.jp/blogに移行しました。
5秒後に自動的に移動します。
移動しない場合はこちらをクリックしてください。

Apacheモジュールである圧倒的なパフォーマンス上の優位性

通常のWebアプリケーションにおけるHTMLはキャッシュできないので、Apacheモジュール型のラウンドアバウトは、サーバー型(リバースプロキシー型とも言う)に比較して圧倒的に有利です。更に言えば、多くのシステムのフロントエンドにはApacheが配置されています。つまり、ラウンドアバウトは既に起動しているプロセスの中で1つのファンクションコールとして動作するという、パフォーマンス上圧倒的な有利な位置にいます。




ラウンドアバウトはプロセスの起動も管理もメモリ管理さえも既に起動したApacheからのサービスを受け、独自のIOも殆ど無く、ネットワーク通信も発生しません。

つまり、サーバー型がラウンドアバウトにパフォーマンスで勝つには、少なくとも以下の要件を満たす必要があります。

ラウンドアバウトの言語変換の処理時間 > サーバー型における、通信時間、プロセス管理、言語変換の処理時間

ラウンドアバウトの言語処理時間は、PHPアプリケーション動作時などには、殆ど処理速度の劣化を感じさせないレベルにあることを考慮すれば、この式を満たすことは困難を極めるでしょう。基本的な構造は、ラウンドアバウトで掛かる処理にサーバー分の処理時間が追加されることになります。変換サーバーのHTTP処理がApacheより速いかどうかは本質的に関係ありません。なぜなら、Apacheはどちらのシステムにも存在するからです。

また、Webを検索すればApacheよりも速いHTTPサーバはいくつもあります。Apache自体もチューニングすれば2倍くらいにはパフォーマンスUPします。独自に実装してもHTTPの複雑な仕様を省けば高速なHTTPサーバーを開発することは可能です。そういった点からすると、バックエンドのアプリケーションサーバーと通信せずに、サーバー型でありながらリバースプロキシーせず、HTMLキャッシュを出力するだけのパフォーマンスであれば、ラウンドアバウトに勝る値を出せる可能性は大いにあります。

ラウンドアバウトは、Apacheモジュールと言う圧倒的に優位な場所で、さらに磨きをかけることで、圧倒的なパフォーマンスを(レアな条件下ではなく)常に発揮する製品なのです。

0 コメント:

コメントを投稿