- - PR -
Apache + mod_auth_pgsql で表示が急に遅くなりました
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-04-21 16:54
みなさんこんにちは。
いつもお世話になっております。Psyduckと言います。 みなさんに御教授いただき、順調に動いていたapacheなのですが 昨日から急に表示が遅くなりました。 どなたかアドバイスをいただければありがたいです。 環境:RedHat 7.2、Apache 2.0.53、PostgreSQL 7.4.7、mod_auth_pgsql 2.0.2b1 mod_auth_pgsqlを用いて、あるディレクトリ以下のページをユーザー認証しています 現象: 今まで数秒で表示していたページが、表示に30秒もかかるようになってしまった。 もちろん以前もmod_auth_pgsqlによるユーザー認証を行っていました。 その前後で何も変更しておりません。(思い当たる事がありません) ある朝突然遅くなっていました。 備考: httpd.confの記述は以下です これらの記述を削除すると、瞬時に表示されるようになるため やはり何かmod_auth_pgsqlの使い方に問題があると思われますが 何しろ今まで問題なく動いていたので釈然としません。 <Directory "/xxxxx/members/"> Auth_PG_encrypted off Auth_PG_hash_type CRYPT AuthName "Enter your username and password." AuthType basic Auth_PG_host localhost Auth_PG_port 5432 Auth_PG_user postgres Auth_PG_database db_name Auth_PG_pwd_table table_name Auth_PG_uid_field username Auth_PG_pwd_field password Auth_PG_pwd_whereclause " and basic_access='Y'" <Limit POST GET> require valid-user </Limit> </Directory> accessログやエラーログを見ても 特に目新しいものはありません。 何が原因なのか、お判りになる方はいらっしゃいますでしょうか? よろしくお願いいたします。 |
|
投稿日時: 2005-04-21 23:35
この状態での特定は難しいと思いますので、切り分けが必要かと思いますが…
・ブラウザ/Webサーバ間 HTTPリクエスト・レスポンスを ethereal/tcpdump でキャプチャしたり、Apacheのログで応答時間を調べて、時系列を把握し、どこで待ちが発生しているかを特定する。 ・mod_auth_pgsql/PostgreSQL間 上記に加え、loアダプタを対象に tcpdump を行い(ポート5432番)、DBとの遣り取りも把握する。 ・PostgreSQL自体 長時間 DB を動作させていると効率が落ちてくるので、バキュームを行ってみてどうか確かめる。 ・その他システム DNSクエリーや、ident 要求による待ちが発生していないかどうか(tcpdump や netstat、lsof)、システム負荷が異常に上がったりしてないかどうか確認する。 差し当たり、問題点の把握のためにも、こういった調査が必要かと。 力技に自信があるなら、Apache のプロセス本体を strace する手もありますね。 |
|
投稿日時: 2005-04-23 04:04
angelさん、いつもお世話になります。
早速のレスをどうもありがとうございます。 ethereal/tcpdump を使ってもう少し状況を把握します。 何をどう確かめればいいのかも判らなかったので とても助かります。 Vacuumはやりましたが、効果はありませんでした。 どうもありがとうございます。 |
|
投稿日時: 2005-04-28 05:54
解決しました。\(^o^)/
angelさん、どうもありがとうございました。 教えていただいた tcpdump を使って 正常に表示される通常のページと 遅くなってしまったメンバー制のページとで reload後にどんなパケットが流れているかを比較したところ arp who-has が、より頻繁に流れていましたので サーバ上で arpコマンドでキャッシュを見てみると、 これも表示に10秒もかかっている事に気づき あれこれ見ていて、参照しているDNSが 機能していないことに辿り着きました。ようやく (^^; そこで、参照するDNSを変えたらarpのレスポンスも瞬時となり その後 apacheを再起動する事で、問題の現象はなくなりました。 サーバとクライアントマシンで違うDNSを参照していたため 気づくのに時間がかかってしまいました。 お忙しい中いろいろ教えていただきどうもありがとうございました。 とても助かりました。感謝いたします。 m(__)m |
1