2015/01/03(土)ECO-Wiki (acronia) 状況

bodycache patch適用範囲拡大

データベース周りでやりたかったことがいったん落ち着いたので、やっておきたかったPukiWikiのbodycache patchの適用範囲拡大を先日実施しました。

#includeを使ったページにbodycache patchを適用するとinclude先の更新がinclude元に反映されなくなる*1ため、今までは#includeを使ったページは対象外にしていましたが、以下の改造をして適用できるようにしています。

  • 以下のファイルに、#includeや#pcommentで参照しているページも含めるように変更
    • cache/~.rel(そのページで参照しているページの一覧)
    • cache/~.ref(そのページが参照されているページの一覧)
  • ページ更新時に、cache/~.refを参照して参照元ページのbodycacheファイルの更新日時を大昔に書き換える
    • bodycacheファイルの更新日時が古いとbodycacheファイルが再生成されるので、変更が反映されるようになります。
    • bodycacheファイルの削除でも再生成されるので、更新日時書き換えでなく削除でも良かったかも。

しかし、今までPHPとは縁が無かったのですが、まさかこんな形でまとまった量のPHPを読み書きすることになるとは。

リロードリンクにbodycache再生成機能を追加

キャッシュ更新がうまくできなかったときのために、念のためリロードリンクにbodycache再生成機能を付けました。仕組みとしては、cmd=reload&page=<ページ名>にアクセスするとbodycacheファイルの更新日時を書き換えた上で、改めて該当ページに転送するという簡単な物です。

キャッシュが再生成されるため、当然リロードリンクをクリックするとサーバー側の負荷は多めになります。人間がたまにクリックするくらいなら問題ないですが、巡回ロボット・ツールにアクセスされるのは問題になり得るので、簡単にアクセスできないようにcmd=reloadリンクはJavaScriptで生成しています。

ページ生成時間の追加

あまり意味があるわけではないですが、HTML convert timeの所にページ生成所要時間(正確にはHTML convert timeの所を出力するまでにかかった時間)を追加してみました。

 HTML convert time: 0.006 sec. (total: 0.061 sec.)

HTML convert timeにはMenuBar部分のconvert時間など含まれていない要素があるので、totalの方が長い時間になります。ただ、ネットワークが遅い場合のwait時間も含まれるので、totalの方が正確な負荷を示しているかというとそういうわけでもないです。(閲覧者側の通信速度が遅いとtotalの方は時間が増えます。)

その他いろいろ

  • メニューバー下部のカウンタ復活
    • bodycache patchの副作用でカウンタ更新できなくなるかと思っていたのですが勘違い*2でした
    • ちょうど1月1日で切りが良さそうだったので、ついでにカウンタをリセットしました。
  • 画像のwidth/heightが指定されているときは、プレースホルダとして同サイズの灰色画像を表示
    • スクロールすると本来の画像が読み込まれて置き換わります。
  • 画像アップローダーに、画像サイズ情報も表示
    • ついでに、Wiki用ref記述に画像サイズを含めるようにしました。

*1 : #pcommentについてはコメント投稿機能を使った更新については対策していました。しかし、コメント投稿機能を使わずにページを直接編集した場合は同じ現象が発生したはずです。

*2 : MenuBar部分はbodycache対象ではないので問題なかった

ECO-Wiki (acronia) アクセス数推移

ecowiki_access_log_20150102.png

1時間単位のECO-Wiki (acronia)アクセス数の推移です。日単位の周期があって夜12時頃がピークになっています。所々飛び抜けているのは巡回ツールによるアクセスと思われます。

大局的なアクセス数は最近安定してきていて、今後はたぶん大きな変動は無いと思います。

リソース状況 その4

アクセス・リソース状況
日付ページビューグラフCPU使用時間グラフウェブ転送量グラフ
2015/01/0224732
56分38秒
4.21GB
2015/01/0126576
1時間 2分42秒
3.97GB
2014/12/3124697
1時間35分40秒
4.04GB
2014/12/3024701
1時間47分43秒
4.16GB
2014/12/2925379
1時間42分12秒
4.12GB
2014/12/2826715
1時間47分49秒
NoData
2014/12/2726481
1時間52分44秒
4.39GB
2014/12/2624747
1時間36分28秒
3.94GB
2014/12/2524150
1時間29分52秒
3.65GB
2014/12/2427096
1時間40分23秒
NoData
2014/12/2330905
1時間59分25秒
4.72GB
2014/12/2225881
1時間31分51秒
3.61GB
2014/12/2150432
2時間 9分29秒
5.22GB
2014/12/2030052
2時間 4分35秒
4.45GB
2014/12/1923285
1時間26分53秒
3.28GB
2014/12/1827165
1時間35分 2秒
3.86GB
2014/12/1727911
1時間34分28秒
3.67GB
2014/12/1630160
1時間45分49秒
4.11GB
2014/12/1529375
1時間48分59秒
4.05GB
2014/12/1434943
2時間 5分32秒
4.99GB
2014/12/1360255
2時間38分56秒
4.96GB

年末年始期間はあまり波もなく安定した推移です。2015/01/01のbodycache patch適用範囲拡大後にCPU使用時間は減少してますね。