WEBシステム開発/運用途中で重くなったシステムを高速化/PHP/memcached
運用開始時はサクサクと動作していたシステムも、データベースの情報が
蓄積されていく段階で、だんだんと処理能力が低下して遅くなってしまいます。
設計段階で、ハード面を強化しておけばいいのですが
初期段階は予算の関係上、ハード面の出費が抑えられている場合が御座います。
後々、スペックの高いサーバーへ移行するとなると移行に伴うコストが馬鹿になりません。
ある程度は、各種サーバーソフト(apache,データベース)のチューニングで
対応できますが、それでも改善されない場合は
開発したアプリケーションの見直し(SQLの最適化)を行います。
ただ、オープンソフトをゴリゴリとカスタマイズしてしまうのは
今後のバージョンアップを考えれば・・・。
PHPなどで作られたアプリケーションを
簡単に高速化を行う場合は、キャッシュ機能を使えばいいでしょう。
キャッシュと言っても
いろいろな種類が存在していて
ただ単にPHPのコードをキャッシュするのであれば
APC
Pear::Cache_Lite
を使うので十分ですが
データベースのアクセスを減らす事が目的なら
memcachedを使えばいいでしょう。
データベースからの結果を、memcachedに追加しておけば
次回からはメモリ上からデータを取得する事が可能です。
100万件以上の情報を、複雑なSQLで取得する場合でも高速に実行されます。
ただやはり、オープンソースにmemcachedを導入するには
それなりの労力が必要になりますが・・・
定期的にオープンソースへmemcachedを対応させたパッチを公開していきたいと思います。
導入は簡単なので、いろいろと試してみてください。
# yum -y install memcached
# /etc/rc.d/init.d/memcached start
# chkconfig memcached on
# pecl install memcache
[php.ini]
extension=memcache.so