PukiWikiの負荷対策

表示速度の改善と、503エラーの回避が目的です。

  • エラーページの頻度を把握する
    • GoogleAnalyticsで503エラーの数を計測する(作成予定)
  • 表示速度を測定する
    • GoogleChromeのネットワークパネル
    • PageSpeed Insightsでパフォーマンスの分析をする

重要なもの

細かいもの

下書き

get_existpages() の高速化

pagename_cache.php

pagename_cache.phpを導入すると、get_existpages() を利用するプラグイン全般が高速化される。
キャッシュ更新のタイミングは

  • ページが新規作成された後
  • ページが削除された後
  • ページがリネームされた後

なので、一覧などが更新されない場合は上記をやってみる。

キャッシュ

Convert_Cache

Convert_Cache 導入による PukiWiki の高速化
ダウンロードはInternet Archiveからconvert_cache.1.0.0.zipを手に入れてくればいい。
動作はしたが、スマホ版スキンで負荷が軽減できなかったので断念。

bodycache

PukiWiki bodycache
Rev. 41+を導入したうえで、ページ内にあるpcomment対策の修正を、pcomment.inc.phpに導入すれば完了。
pcommentをよく使ってるなら、pukiwiki.ini.phpは下記のようにする。

$bodycache_disable_plugins = array( 'ls2', 'include', 'sortabletable' );

なお、擬似 plugin として #bodycache を指定することで、キャッシュの生成をコントロールできます。

#bodycache(enable)
bodycache を強制的に有効にします。
#bodycache(disable)
bodycache を強制的に無効にします。menubarで必要。

sortabletable が動かないのは、キャッシュでは $head_tag($head_tagsではない) が動かないのでjsファイルがリンク切れになるため。
静的にjsのリンクを貼ってしまえばよさそうだが、sortabletable を使っていないページにもリンクが貼られてしまうのが少し気になる……。

define('PLUGIN_PCOMMENT_TIMESTAMP', 2);

pcommentに投稿された時、
0だとコメント/サンプルページだけ更新されてサンプルページでコメントが反映されない。
1だとサンプルページだけ更新されてコメント/サンプルページには反映されない。
2だと両方が更新されるが当然最新の更新も2件編集したような表示になる。

ecache.inc.php

ecache.inc.php

お手軽部分キャッシュ、と書いてあるだけあって#ecacheで囲んだ場所だけキャッシュする。
長くなっているページのみに行えば効果は見込めるし、不具合も少なそう。まだ試してない。

Web cache

Andante scherzoso - Web cache v0.1.0
まだ試していないがこれも負荷対策になる模様。

http://jbbs.livedoor.jp/bbs/lite/read.cgi/netgame/7609/1310213661/79

Web_cacheも閲覧者のローカルキャッシュを利用するのでCPU負荷低減も
期待できますが、稀では有りますがサーバとブラウザの息が合わないと
キャッシュが効き過ぎる事があります。閲覧者の環境は多様なので
解決できない事も多いです。そこでCPU負荷はConvert_Cacheに丸投げし、
転送量問題をWeb_cacheとgzip圧縮転送で処理するという方針で当方の
管理下サイト(Oblivion, Fallout 3)は運営しています(それゆえ
Web_cacheの設定は弱めで実用上はキャッシュ効き杉って事は殆ど
発生しない筈)。サーバ側で処理すれば閲覧者側環境の影響は減らせますし。

コメント

コメントはありません。 コメント/Tips/PukiWikiの負荷対策?

コメント:

最終更新: 2016-08-22 (月) 00:55:34