以前、「XREA上のサイトの場合、PHPのXSLT関数を使うページにリクエストが殺到すると、負荷率が問題になるより先に転送量が許容値を超えてしまうだろう(つまり、負荷率は余り問題にならない)」と書いたが、本当にそうなった。
昨日はこのサイトにしては突発的にアクセスが多かったのだが、負荷率が0ptだったのに対し、転送量は1.5GBで許容量を超えた。ページリクエスト数は約8,200件で、リクエストの度にXSLT関数を含むPHPが呼び出されている。
転送量が異常に増えたのは、呼び出しが多かった「最新のメモ5日分」に大きめの画像が2枚も掲載されていたのが原因で、トップページのタイトル画像と合わせると画像だけで全体の70%強を占めている。
普段はここまで画像を多用しないので、画像の分を差し引いて考えると、大体3倍程度のページリクエスト数、つまり24,600件程度までなら1GBの転送量でやり繰りできそうだ。リクエストの限界が昨日の3倍程度ならば、恐らく負荷率は0ptを維持するのではないかと思われる。
XSLT関数は何となく負荷が掛かりそうなイメージがあるが、実際の所、それほど大変な処理ではないようだ(もちろん、XSLTの内容にもよる)。ちなみに、このサイトで使われているスクリプト(HIMMEL)では1回ページを出力する為に3回以上はXSLT関数を呼び出している。
なお、今回はPHP4上での話だが、PHP5のXSL FunctionsもPHP4と同様にlibxsltを使っているため、大きな差は無いと思われる。