スペースモラトリアムノカミサマ

日記+コメント付きブックマーク+他人にも役に立つかもしれない情報など。
(更新情報: RSS(ツッコミ付き) / RSS(ツッコミ抜き) / LIRS)

最近の TrackBack:
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|06|07|08|09|10|
2011|01|02|03|07|10|11|
2012|02|03|04|07|08|09|
2013|01|06|07|
2014|02|08|09|11|
2015|09|
2016|01|05|
2017|07|
2018|05|07|
2019|07|
2020|08|09|10|12|
2021|05|
2022|03|

2005/01/22

_ [日記/blog] tDiary 高負荷対策

先月、Referer Spammer からの DoS 攻撃を回避する設定を行ったのも空しく、最近黒猫の負荷上がりまくりだよウワァァン!ヽ(`Д´)ノ ということで、再度 tDiary の負荷軽減を試みる。

現況の測定とテスト

まず、黒猫で tDiary を運用している漏れとりそたんのページの遅さを測定。(ab -n 100 -c 5 $URI によるチェック)

アドレスリクエスト/秒秒/リクエスト
http://pmakino.jp/tdiary/0.841183.781
http://rxh.jp/diary/0.166305.641

うはww重杉wwwww 特にりそたん1アクセス6秒は酷すぎwwwww

さて、どれがボトルネックになっているか、http://pmakino.jp/tdiary/ にていくつか条件変えてテストしてみた。

変更点リクエスト/秒秒/リクエスト
Anti Referer SPAM プラグインを外す0.871146.447
さらに75行記述してあったリンク元置換リストを空にする0.861160.476
さらにリンク元表示機能を切る2.68372.446
さらにプラグインを全部オフにする2.56390.465

リンク元表示機能を切ることによって約3倍高速化し、それ以外の変更はほとんどパフォーマンスに影響しないことがわかった。

というわけで、同様に http://rxh.jp/diary/ もリンク元表示機能をオフにすると、

リクエスト/秒秒/リクエスト
1.26796.056

約8倍の高速化。

…というわけで、リンク元表示機能をオフにすれば状況はかなり改善されることが期待される。

結果まとめ

今回の改善結果をまとめると、

アドレスリクエスト/秒 (改善前)リクエスト/秒 (改善後)高速化
http://pmakino.jp/tdiary/0.842.68319%
http://rxh.jp/diary/0.161.26788%

ということになる。

次の対策

これで様子を見てもダメなら以下の対策が考えられる。

  • mod_ruby を使う → tDiary が重い理由は、Ruby の起動やスクリプトの Parse にかかる時間よりも、実際にデータをいじっている部分の方が大きそうなので効果薄そう & Apache が太るのでメモリが心配
  • 負荷対策:静的 HTML 化@tmaeda 日記に習って静的なキャッシュに転送する → 絶大な効果が期待できるがリンク元を記録する機能が使えなくなる (自分が MT ではなく tDiary を使っている理由の一つがリンク元関連機能なのでできるだけやりたくない)
  • tDiary のデータをファイルではなく Postgres 等の DBMS に格納する dbi_io プラグインを導入する

参考