http://nucleus.datoka.jp/index.php?itemid=225
ページ生成時間を計測するプラグインで、スキンに二箇所指定することで特定部分の生成時間を計ることもできます。最近は夕方以降にサイトアクセスできない状態が続いたりしてて、どこが処理が重いのかを調べるために導入してみました。
以下はどこが重いのかだとか、今後のサイト運営に関する調整とか、そういう部分だけ長々と書いてますので興味のある方だけご覧ください。
どうも、悪質な巡回ROBOT、gigablast なるところから集中アクセスをくらって、耐え切れずにDBクローズが失敗し、リソース不足に陥ってアクセス不可、といった流れではないかな、と推測*1しています。
サーバー引越し*2とかツール変更とかサイト閉鎖とか色々方法はあると思ったんですが、とりあえずは出来る限りサイトの表示負荷を減らしていってみようかと考えてみました。そういうわけでベンチマークの出番なわけです。おおざっぱに計って傾向を調べたらこんな感じでした。
スキンで使ってるIF文の入れ子はそこまで負荷高くない。むしろ他の表示系の処理が重いとIF文が動かなくなるケースがある、といった感じ。
カテゴリ表示で記事数を取得するのがやはり重かったので、思い切ってコメント化。今回は znMCList のアーカイブリストへのリンクも消しました。サブカテゴリのアーカイブリストをスマートに表示させたいなら、まずサブカテゴリ選択してから右上に表示されるアーカイブリストリンクをクリック、という流れにします。そんなに使う人居ないだろうし。
カテゴリ一覧表示で znMCList 、 ContentsList 、 Dtree といったものがあるんですが、この中ではツリーが一番軽い気がしました。でもソートがカテゴリIDだったり、非表示にカテゴリを設定するように改造するのが面倒そうなのと、画像と文字が若干上下方向にズレるので保留。結局は znMCList から記事数取得を無くして使用。
新着リスト一覧を20件から10件にするだけでずいぶんと違ったのが意外。とはいえアーカイブリスト取得とやってることは同じわけだし、一度に取得する件数が多いから当たり前といえば当たり前ですね。5件と10件で差が無いので10件表示に決定。
NP_TagEX によるタグ一覧表示はやはり重い。タグを全部消すかどうするかが課題。とりあえずタグありで様子見。無理そうならタグ使うのをやめるか、マルチタグプラグインの導入を考えてみる。
とは言えマルチタグプラグインは別ブログの同じ名前のカテゴリを一緒にして取り込む仕様のようで、このあたりは変更しなさそうな予感。今からいろいろ変更するのも時間がかかるし、それで効果が望めるかが自分の中で不鮮明なままので実用は保留。
以前から戻そうかどうしようか悩んでたトラックバックは完全に排除の方向で。スパム受けることを差し置いてでも導入する利点が見つけられないし。
はてなブックマークのためにRSS取り込みを行ってるのは、意外や意外、そんなに負荷がかかってませんでした。まぁ60分のキャッシュがあるし、あっちのサーバの状態に左右されたり、といった要素もあるんで勘違いしてるかもしれないけど。どうしようもないときは一覧表示はやめて、トップにはてなブックマークのリンクだけ置いておこうかな。一言で感想すむのは極力はてなブックマークにしておきたいし。
その他の機能についても状況によっては見直しをかけようと思いつつ、現時点ではこんな感じで様子見してみます。
- 注1 : 生ログを見ないとハッキリとは言えないんですが、毎週月曜の朝に一週間分まとめてじゃないと取得できないので、現時点ではあくまで推測ということで。先週の生ログにはかなり名前を残してましたので限りなく濃い灰色って感じでありますが。
- 注2 : 佐藤(な)さんに 80code.com をお勧めされてて、少し心が揺らいでます。でも動画ファイル6.5GBをどうしようか……
コメント