サーバー負荷対策として、利用しているテンプレートエンジン『Smarty』のキャッシュ機能を利用してみることにしました。
最もアクセスの多いインデックスページのデータを5分ごとにキャッシュして、キャッシュがある場合はそちらを読み込むことで負荷をかけないようにするという試みです。
これによってサイト利用においてちょっとした問題が発生するかもしれません。
懸案事項
- 表示データがリアルタイムのものでなくなる(5分前のものの可能性がある)
- 実験しながらの導入なので、何かしらの不具合が起きる可能性がある
- ログインしているにも関わらず、indexのみログイン状態で表示されない
コメントしたあとや、プロフィールを変更したあとに、インデックスに反映されなくてもそれはキャッシュ表示をしているせいであって、実際にデータが登録されていないわけではありません。
また、3番目のログイン状態についても同様で、実際にはログインはしていますがキャッシュ正しく表示されなくなってしまっています。
いまのところ、以前のような頻繁なエラーは出ていないようですので(たまにでますが)、上記のような懸案事項があるもののまともに見れない状態よりはマシなのでしばらくこのまま実験を続けてみようと思います。
また、403が出ても閉鎖したわけではありませんのでよろしくおねがいします :]
一時的な変更
キャッシュ表示により、インデックスに他人のログイン情報が表示されてしまうという問題が発生したため、インデックスでのログイン表示項目を一時的に消しました。
インデックス以外では表示されますので、プロフィールの変更やログアウト等はインデックス以外のページに飛んでからお願いします。
いろいろとご不便をおかけしてもうしわけありません。
この対策でもどうしようもなくなった場合はサーバーの変更を検討しないとダメですね…。
わかっている不具合
- ログイン情報がキャッシュされてしまう → インデックスのみ非表示に
- インデックスで次ページへ移動してもキャッシュされたインデックスがでる → 非表示に(タイミングによって次ページがキャッシュ化されてしまうため。左メニューの「アーカイブ」で代用してください)
困った。