基本的なWebシステムの高性能化手法
システムの高性能化手法には次の3つが利用されます。このうちチューニングとスケールアップはWebシステム以外でも日常的に行われていると思います。

図2:チューニング

図3:スケールアップ

図4:スケールアウト
-
チューニング
プログラムのアルゴリズムや関数を変更。サーバーの設定変更による高速化も可能。Webサーバーから送信されたデータをサーバー/クライアントでキャッシュする。スクリプト系言語であればバイトコードにコンパイルされたデータをキャッシュし高速化を実現
例:PHPのバイトコードのキャッシュモジュールの導入。OS/Webサーバー/データベースサーバー設定の修正など(図2)
-
スケールアップ
コンピュータ単体のハードウェアを増強して性能を向上。サーバーのCPUやメモリの増加など
例:CPUをPentium III 1GHzからPentium 4 3GHzに変更(図3)
-
スケールアウト
システムにサーバーを追加して性能を向上。必要な処理能力を得るために、システムにサーバーを追加する手法
例:Webサーバー3台、データベースサーバー1台をWebシステムに追加(図4)
チューニングやスケールアップによる性能向上は、比較的手軽に行える場合も多い一方で、プログラムのチューニングでは、アルゴリズムを変更することになるため何百倍も性能が向上する場合もあります。
チューニングとスケールアップは個々のコンピュータを高速化する手法ですが、スケールアウトはコンピュータを追加して必要なシステム性能を増強する 方法です。たとえば、Webサーバー2台では十分な速度で処理できなくなった場合に、2台Webサーバーを追加し4台にする、などの例が考えられます。
バックナンバー
この記事の筆者
University of Denver卒。同校にてコンピュータサイエンスとビジネスを学ぶ。株式会社シーエーシーを経て、エレクトロニック・サービス・イニシアチブ有限会社を設立。Linuxはバージョン0.9xの黎明期から利用してるが、オープンソースシステム開発やコミュニティへの参加はエレクトロニック・サービス・イニシアチブ設立後から。PHPプロジェクトのPostgreSQLモジュールのメンテナ、日本PostgreSQLユーザ会の四国地域での活動等を担当している。
筆者の人気記事
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。
これは広告です