CASE STUDY
|
CMSパフォーマンス・チューニング
顧客
|
人口約46万人の中堅地方都市を統治する市役所の情報政策課.
背景
|
市民への情報発信の手段の1つとして,インターネットを利用したPC向け非会員Webサイトを運営. 数年前から独自開発のCMS(コンテンツ・マネージメント・システム)を利用して,情報配信をしている.
サービス要求
|
市の担当者が,毎日午前10時頃にCMSの管理ツールを利用して情報を登録しているが,その直後からパフォーマンス劣化が発生し,システムダウン状態となる.
情報更新後にアクセス集中が発生する事が原因だと考えている. また,データベースシステムの再起動によって一時的な回復が行えるが,根本的な改善に至らない.
プロダクト
|
- ソフトウェア
- Vine Linux 3.2
- Apache 1.3.33
- PHP 4.4.4
- PostgreSQL 7.4.19
- サーバ構成
- スペック非公開
- 台数2台
ソリューション
|
今回の目的は,現在の状況を改善する為のパフォーマンス・チューニングが求められている.
顧客が市役所という事で,セキュリティの対策の為に関係者以外のリモートアクセスが許されていないため,ヒアリングベースのチューニングとなった.
最初の要求は「パフォーマンスが悪いので改善してほしい」という漠然とする要求だったが,現状把握の為,以下のポイントでヒアリングを行った.
- システムの動作状態(利用者側(外部))アクセスからみた実際の動き.
- 現在のシステム構成
- アクセス数
- リソース利用状態
- 各種設定ファイル
- これまでの経緯(どのように考えて設定・チューニングを行ったか)
状態をヒアリングすると,データベースの負荷が高く,処理が行えていないという問題があり,PostgreSQLの共有メモリの拡張を実施しようと試みていた.
データベース処理に負荷が集中する事で,データベースサーバの設定内容の見直しを行いがちであるが,アプリケーション側の実装の問題によってデータベースにしわ寄せが行われている事が多い.
ヒアリングを続けると,次のような事実が発見された.
- Too many Connectionsが発生している.
- コネクションプーリングを利用していない
- WebサーバではKeepAliveを使っている
- データベースにあるデータ容量は50MB程度
まずは即効性のあるチューニングポイントとしてのサーバ設定側の見直しの提案と,分析ポイントと手法のコーチングを行い,アプリケーション側の内容見直し作業の提案を行った.
オプション
|
要求仕様には含まれていなかったが,このコンサルティングで知り得た内容の中で,いくつかのセキュリティ・アドバイスを行うポイントを発見し,改善対応策についてもレポートの提出を行っている.