トップ/pukiwiki1.4/tips/pukiwiki_load_reduction
#author("2025-04-20T15:05:46+09:00","default:nemusg.pad","nemusg.pad") #author("2025-08-24T23:32:32+09:00;2025-04-20T15:05:46+09:00","default:nemusg.pad","nemusg.pad") * PukiWikiの負荷対策 [#x12661e9] 表示速度の改善と、503エラーの回避が目的です。 - エラーページの頻度を把握する -- GoogleAnalyticsで503エラーの数を計測する(作成予定) - 表示速度を測定する -- GoogleChromeのネットワークパネル -- [[PageSpeed Insights:https://developers.google.com/speed/pagespeed/insights/]]でパフォーマンスの分析をする ** 重要なもの [#ib7a30ea] - [[単語検索を無効にする:http://blog.rtwiki.net/pukiwiki/search-disabled/]] - [[bodycashe.php:http://blog.rtwiki.net/pukiwiki/bodycache-php/]] -- 効果大。特に長いページでHTML convert timeが短くなる。 ** 細かいもの [#b301f4f9] - [[トレンドマイクロ・百度・Yetiのクローラーを拒否:http://web.tvbok.com/web/server/deny_from.html]] - CSSを1ファイルにまとめる * 下書き [#l920e8b2] ** get_existpages() の高速化 [#td0c59de] *** pagename_cache.php [#v45f4054] [[pagename_cache.php:http://www.revulo.com/PukiWiki/Cache/PagenameCache.html]]を導入すると、get_existpages() を利用するプラグイン全般が高速化される。 キャッシュ更新のタイミングは - ページが新規作成された後 - ページが削除された後 - ページがリネームされた後 なので、一覧などが更新されない場合は上記をやってみる。 ** キャッシュ [#lb6a3234] *** Convert_Cache [#n5e234b7] [[Convert_Cache 導入による PukiWiki の高速化:http://www.revulo.com/PukiWiki/Install/Convert_Cache.html]] ダウンロードは[[Internet Archive:http://d.hatena.ne.jp/freamist/20080827/1219745937]]からconvert_cache.1.0.0.zipを手に入れてくればいい。 動作はしたが、スマホ版スキンで負荷が軽減できなかったので断念。 *** bodycache [#kdd149e0] [[PukiWiki bodycache:http://debian.fam.cx/experimental/?namazuTamer%2FPukiWiki%2Fbodycache]] 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件編集したような表示になる。 - [[bodycasheを利用してHTMLコンバートタイムを70倍に高速化:http://oxynotes.com/?p=6141]] *** ecache.inc.php [#zf1e634d] [[ecache.inc.php:http://lsx.sourceforge.jp/?Plugin%2Fecache.inc.php]] お手軽部分キャッシュ、と書いてあるだけあって#ecacheで囲んだ場所だけキャッシュする。 長くなっているページのみに行えば効果は見込めるし、不具合も少なそう。まだ試してない。 *** Web cache [#ecbfbca1] [[Andante scherzoso - Web cache v0.1.0:http://z49.org/2010/09/07/492/]] まだ試していないがこれも負荷対策になる模様。 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の設定は弱めで実用上はキャッシュ効き杉って事は殆ど 発生しない筈)。サーバ側で処理すれば閲覧者側環境の影響は減らせますし。 #include(parts/feedback,notitle)