かみぽわーる

kamipo's blog

チューニンガソンに遅刻して思ったこと

朝からピングドラム観てる場合じゃなかった…。

前回のWordPressに引き続いて今回のMediaWikiも圧倒的なPHPのCPUバウンドなアプリケーションで、PHP 5.4をビルドした人が上位を独占でしたね。

僕はといえば、PHP 5.4ビルドしたら負けかなと思ってnginxのproxy_cacheで動的ページをキャッシュしようと試みてうまくいかず、デバッグしながらHeader unset Cache-ControlしたりHeader unset Expiresしたりしてブラウザからのアクセスはキャッシュできるようになったけど、ベンチマークまわすとキャッシュが生成されないのをsquidとかも試してみたけど解決できず時間切れでした。

結果的にはまたPHP 5.4かよって感じですが、前回はともかく今回の課題はもう一度おなじ条件でやればまったく違う結果になる余地があるいい課題だったんではないかなと思います。

今回はまったく更新リクエストはこない参照だけのチューニングだったので、計測時に参照される100ページを静的なコンテンツとしてキャッシュすれば、最もよいスコアが出たはずです。みんな一度はキャッシュしようと考えたんじゃないでしょうか。

それを難しくしていたのが、参照される可能性があるページが約200万件ぐらいあるということと、MediaWikiが1req/secも出ないぐらいクソ遅いということです。なにも考えずに与えられた2つのインスタンスだけでキャッシュ生成しようとすると100万秒=11日以上かかります。もし参照される可能性があるページが1万件ぐらいしかなかったりMediaWikiが50req/secぐらい出てれば、もっと多くの人が全ページキャッシュしようと考えたはずで、PHP 5.4にしたから上位に入れましたとはならなかったんじゃないかなと思いました。

きっと何者にもなれない僕ですが、遅刻しないことが僕の生存戦略だと思って次回もがんばりたいと思います。エンジョイ!