- PR -

apacheが遅い原因(libhttpd.ep?)

投稿者投稿内容
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2005-06-10 15:02
言い忘れておりました。。
シェルス口プトの先頭でvacuumしております。。
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2005-06-10 15:02
こんにちは。

引用:

McLarenさんの書き込み (2005-06-10 13:59) より:
例えばsftpのshellスクリプトの最後でapacheをrestartしてみて朝のパフォーマンスが回復すれば、これが原因と考えられますでしょうか。


いえ、Apache ではなく、DB(PostgreSQL)に関連した部分が問題なのでは? というご指摘ではないでしょうか。

静的なページ(単純な HTML で書かれたもの)と、動的なページ(DB からデータを持ってくるもの)で、表示速度を見比べてみると、体感できるかもしれませんね。
# DB に明るくないので、これ以上コメントできないのですが orz
_________________
はゆる
Smile, Smiles make me happy.
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2005-06-10 17:09
はっ・・・!そういえばPHPでDBのレコードをたくさんSELECTしているページが朝方だけ異様に遅いです。

さらに朝の遅いときに
ps ax
したときにも
postgres: nobody db名 [local] SELECT
とうプロセスがたくさん上がったままになっています。

今は快適に動く時間帯ですので
postgres: nobody db名 [local] SELECT
が出ても一瞬で消えるので捕らえてコピーするのに苦労しましたが・・・
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2005-06-10 23:13
引用:

例えばsftpのshellスクリプトの最後でapacheをrestartしてみて朝のパフォーマンスが回復すれば、これが原因と考えられますでしょうか。もしくは思い切ってサーバー再起動でもいいです。


ん〜、apacheをrestartすればスワップアウトされたままのプロセスは
メモリ上に存在するようになるでしょうけど、それとパフォーマンス
低下とはまた別なんじゃあないでしょうか。
OSを再起動した後、Webをアクセスして回ってDBをざっとひととおりさわる
ようにすればコンディションは良くなるはず。
ですが、単純にメモリ不足のような気も...

引用:

# vmstat
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
1 0 0 30684 9996 106580 827480 1 3 49 5 26 205 5 1 94


見落としてましたが、平均のvmstatでもsiが出てるのは気になりますね。

あと、「この日をさかいにクライアントが増えたことも
変わったことも何もありません」とのことですが、
ビミョーにユーザのアクセスが増えた、とか、データ量が
増えた、というようなことはないでしょうか?
それまでギリギリのメモリでなんとか回っていたところが、
ある日からメモリが足りなくなって一気にパフォーマンス低下、
というのもあるかなあ、と思うです。

遅くなっているときに、vmstat 10 とかやるとどんな具合でしょう?

[ メッセージ編集済み 編集者: ぽんす 編集日時 2005-06-10 23:15 ]
hohojp
常連さん
会議室デビュー日: 2005/02/15
投稿数: 31
投稿日時: 2005-06-11 00:55
引用:

はっ・・・!そういえばPHPでDBのレコードをたくさんSELECTしているページが朝方だけ異様に遅いです。

さらに朝の遅いときに
ps ax
したときにも
postgres: nobody db名 [local] SELECT
とうプロセスがたくさん上がったままになっています。



なんか、前にも書きましたが、私がHDDが壊れたときの症状と
似ているような。。。

ハードに関しては、問題ないですか?異音がするとか、古いPC
でそろそろ寿命とか。

この確率は、かなり低いと思いますが。壊れる要因はたくさ
んありますし、壊れるタイミングもまちまちですからね。ただ
しっかりと、データが取れる間に、バックアップは、取って
おくべきですね。

# ごめんなさい!話しをそらして。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-06-11 02:23
こんばんは。

少し前に携わっていた案件を思い出したのですが、アクセスが増す時間帯にガックリと応答性能が落ちる現象に出会ったことがあります。
( ハード増設等もできない状態だったため、対策無し…でした )

それは、Apache + Tomcat + Oracle だったのですが、Webセッション数 × n = DB接続数 であり、Oracle側の接続数の限界を超えたところで、待ちが大量に発生してしまったのです。

今にして思えば、DBとの接続が限界に達していたら強制的にエラーにしてしまう ( 後でアクセスして下さい、とか ) ように AP を作っていれば免れたのかもしれないのですが…。
※ まぁ、私は開発には関わっていないので、どうにもできなかったかもしれませんが。

とりあえず、Apache側でアクセスログ設定をカスタマイズすれば、応答時間等もとれますし、同時セッション数も併せて解析するのも良いのではないでしょうか。
※ 先に、数秒〜数分間隔で top や ps の出力を取り続けてみるのも良いかと思います。

以上、ご参考まで。
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2005-06-12 11:56
アドバイスありがとうございます。
初心者の私にとっては難しそうですが、がんばって調べてやってみます。

angelさま。もし、初心者でもわかりそうなサイトがあれば是非是非ご紹介願います。
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2005-06-12 12:04
引用:

見落としてましたが、平均のvmstatでもsiが出てるのは気になりますね。

あと、「この日をさかいにクライアントが増えたことも
変わったことも何もありません」とのことですが、
ビミョーにユーザのアクセスが増えた、とか、データ量が
増えた、というようなことはないでしょうか?
それまでギリギリのメモリでなんとか回っていたところが、
ある日からメモリが足りなくなって一気にパフォーマンス低下、
というのもあるかなあ、と思うです。

遅くなっているときに、vmstat 10 とかやるとどんな具合でしょう?


ぽんすさま、アドバイスありがとうございます。
なるほどその線もあたってみようと思います。
月曜日の朝にはみんなが出勤しますので必ず遅くなりますので、vmstat 10 を実行しようと思います。

スキルアップ/キャリアアップ(JOB@IT)