Apacheのログ出力に追加しておいたほうがいい(かもしれない)設定

この前誰かに聞かれたので、ついでにブログにしとく。

apacheのLogFormat設定でデフォルトからさらに追加することと言えばRefererとかUser-AgentとかCookieぐらいで済ませることが多いと思うが、運用で悩んだときにヒントになる情報は他にもある。

%X 応答が完了したときの接続ステータス:

X = 応答が完了する前に接続が異常終了
+ = 応答が送られた後に接続を持続することが可能
- = 応答が送られた後に接続が切られる
というもの。javaであれperlであれphpであれ、アプリケーション側ではなんも起きてなさそうなのにユーザーから苦情が来たので何かと思ったらフロントエンドのApacheと途中のネットワークスイッチの間の問題だとか、apacheのKeepAlive設定がらみの問題でした、みたいな場合にこのステータス情報が調査をラクにしてくれることがある。

%D リクエストを処理するのにかかった時間、マイクロ秒単位

「あるページだけが異様に重い気がするんだけど?」といった場合に体感スピードではなくその正確な値を得ることができる。純粋にWebアプリ的な処理時間であってネットワーク的な遅延時間などはこれじゃ取れないけど。なお、「%T リクエストを扱うのにかかった時間、秒単位」というのもあるんだが、「処理するのにかかった時間」と「扱うのにかかった時間」がどう違うのかわからん(笑)。いずれにせよ秒単位よりはマイクロ秒単位のほうがいいだろう。

あとは、apacheのログに好きな情報を出す方法(PHP編)(2006/7)で書いたような情報とか。

まあつまり、たまにはapacheのマニュアル眺めてみるのも悪くないんじゃないかということで。

see also:

PHPにAPC入れて処理が速くなった様子を数字で把握する

APC(Alternative PHP Cache)でPHPを高速化できるという話が最近ちょっと話題になっていた。 もう何年(4,5年?)も前に筆者がAPCを試したときはなんだかよくわからんエラーが頻発して安定性に不安を感じた覚えがあるのだが、最近のバージョンは安定しているようだ。

上記の記事に限らないんだが、高速化と題している割には結果としてはサーバ負荷の低減にだけ言及されている紹介が多く見受けられる(間違ってるわけじゃないけど)。そこで、ロードアベレージとかCPU使用率といった指標だけでなく、先日の記事のようにApacheのリクエスト処理時間も観測できるようにしておくと、本当に高速化していることを実感できる。

以下は筆者が管理するちょっとした実験サイトのapacheのアクセスログをanalogで解析した結果の所要時間レポートの比較。 (一部はしょってます)

所要時間(秒)APC導入前のある1日の全リクエスト中の割合APC導入後のある1日の全リクエスト中の割合
0 0.32% 0.06%
<= 0.01 0.01% 10.09%
0.01-0.02 6.23% 18.52%
0.02-0.05 34.83% 24.04%
0.05-0.1 27.05% 22.66%
0.1 -0.2 17.49% 12.61%
0.2 -0.5 6.45% 5.67%
0.5 -1 4.17% 3.38%
1- 2 1.72% 1.30%
2- 5 1.50% 1.40%

円グラフにでもすれば一目瞭然だろうが、数字を見るだけでも 全体的に処理速度が速くなっていることがわかる。 1秒以上かかる処理の割合にあまり変化が無いのは、PHPでの処理以外のところ(DB検索とか)でどうしても時間がかかってしまっているケースではAPCの効果は薄まる、という当然の結果。

この測定ではAPCの設定はすべてデフォルトのままで実施した。 apc.statもオンのまま。マニュアルにもあるとおりこれをオフにするともっと速くなるかなと思って試したのだが、トラブったのでやめた。というのは、例えば下記のようにスクリプトがあるとすると、

  1. /dir_a/foo.php
  2. /dir_b/foo.php
apc.statがオフの場合、 先にdir_a/foo.phpを他のスクリプトがinclude("foo.php")のように相対パス指定でincludeすると、dir_b/foot.phpを読むつもりで別のスクリプトがinclude("foo.php")をコールしたときにdir_a配下のほうのキャッシュを読んでしまうらしき挙動を示したのだ。これもやはりマニュアルに書いてあるとおりで、仕様である。相対パス指定であっても絶対パスで識別してキャッシュしてくれてもいいようなもんだが。include("/dir_a/foo.php")のように絶対パス指定するように全部書き直す?えー。

だから、apc.statはデフォルト(オン)のままにしておきましょう。それでも十分に速いし。

それから、5秒が2秒になったって言うんならともかく0.2秒が0.1秒に短縮されてそんなにうれしいか?と思うかもしれないけど実はバカにできないんだよ、という話が下記のとおり。

Chromeはなぜ速いのか - @IT (2008/12)

「この結論に驚くかもしれない――、ユーザーが0.5秒の遅れに気付くかって?しかし、Amazon.comでもわれわれは同様の経験をしている。100ミリ秒単位でページ表示を遅らせるA/Bテスト(条件を変えて2つのサービスを同時に公開するテスト)で、非常に小さな遅延ですら、収入に大きく響いてくるということを発見した。速いというのは本当に大切なことだ。マリッサが言うように“ユーザーはスピードに敏感に反応する”のだ」

釣りをしてたつもりもないのに珍魚が釣れていて誰かがキャッチ&リリースしておいてくれていたらしいことに今頃気づいた件

去年の10月に書いたその余白がもったいないと思う感覚とどうにかしようとするデザイン魂という記事について、 年明けになってweb屋が主張する「リキッドレイアウト」に騙されないためにというツッコミらしき記事が2週間も前に出ていたことに気づいたのがほんの数時間前。

どのような環境のユーザーであっても無駄な余白を避けることとストレスを与えないこととをうまく両立させるwebデザインを実現するための技術と時間と経済力と人的リソースそしてなによりも動機と情熱という点において しがないリーマンweb屋が一人でつぶやきやら持論やら暇つぶしやらを適当に書きなぐるためのこのブログと世界のアマゾンとでは月とスッポン程違うことは自他共に百もご承知のことと思われましたが それでもなお広いこの世の誰かにとっては余りにも酷い騙しの主張であったことは私の不徳の致すところであります。

気づかない間にいろいろ議論は進んで(?)いて、そのうちのほんの2,3を挙げるだけでも

といった感じでもう誰が誰を騙しているのやらわからなくなってるみたいなカオス状態は正直言って、大好きだ。(笑)

‘web屋が主張する「リキッドレイアウト」に騙されないために’に騙されないために

何故なら、1920x1080の液晶モニタを使う安眠枕さんは、その大画面を利用して「可変幅のウェブサイトはこんなにも読み難いよ!」と主張しているにもかかわらず、実際のところは彼自身がそんな巨大な幅を最大限に利用してネット閲覧をしていないから。

わざわざ巨大なディスプレイを持ち出して、非常に稀な「読み難い環境」を作り出している。

これを正当化するのであれば、わざわざ小さい窓サイズを作り出して「これだから固定幅はクソ」という理屈も正当化されるわけだし、所有しているモニタの性能から、最大化しても表示しきれないケースもありえる固定幅のほうがよっぽどクソの烙印が押されるはずだ。

特に上記の記事(そのコメント欄等も含め)は上の一部引用に限らず他の部分においても自分が考えたことをほぼ全部言ってくれてしまっているどころか自分にとってはプラスアルファな知見を感じる部分さえあり、もう改めて書くことが無い。そもそも今回みたいなことは過去何度かあったけどそのたびに特に何を思うでもなくおいしい知見だけをいただいてあとはスルーすることがほとんどで、今回も正直どうでもよい。

でも、これだけは、絶対に、誤解してほしくない、ということがあるんだ。それはね、
























アニメキャラとかエロゲームとか同人誌とかそういうの、さっぱり興味ないんだ。本当にすまない。

see also:

出社が楽しい経済学 第1回:サンク コスト(埋没費用)

「かんぽの宿」は2400億円、70施設の土地代・建設費(読売新聞) - Yahoo!ニュース

鳩山総務相はオリックスへの譲渡価格約109億円が「安すぎる」と疑問を呈している。土地の値下がりや建物の老朽化が進み、年間50億円規模の赤字を出す事業であることを考慮しても、総務相が態度を硬化させる可能性がある。

サンクコストの呪縛に見事にはまるアホ政治家。

ブックオフに古い漫画本を持ち込んだり、あるいはそこで買ったり、中古車ショップで車探してみるとか、あるいは新車を買うのに古い車を下取りに出してみるとか、子供服を古着屋で売買するとか、コメ兵とか金券ショップとかに行ったりする中で、多くの大人が自然と身つけるのがサンクコストの概念である。

ところが、車(やその他の物品)を下取りに出したことがない/古本屋や古着屋にいったことが無い/そういった行動の必要性を感じない/その概念すら知らない、という状態で育ちきってしまった世間知らずのお坊ちゃま政治家は、えてしてこういうヨタを吐く。 NHKで最近始まった「出社が楽しい経済学」でも見て勉強しなおしていただきたい。

出社が楽しい経済学 第1回:サンク コスト(埋没費用) (NHK)

→これもまさにサンクコストの呪縛。「投資した分を取り戻したい」という思いに加え、「自分たちの過ちを認めたくない」という見栄やメンツが、人をサンクコストに縛り付け、合理的な判断を見失わせる大きな要因になるのだ。

サラリーマンNEOまた再開しないかな。

see also: