[pgpool-general-jp: 739] Re: pgpool-IIでの障害について

Eiichiro Sakai sakai @ agate-japan.com
2010年 2月 16日 (火) 18:48:30 JST


盛様

お世話になります。
酒井@Agateです。

お返事ありがとうございます。

> 遅れてしまいましたが、
> 1の現象についてですが、pgpool-II2.2.2までは、ロックを獲得したまま
> プロセスが残留する可能性がありました。
> pgpool-II 2.2.3以降では修正されています。

こちらのリリースノートは確認させていただきました。
ただ、今回の現象はpostgresでselect for updateでロックを取得後
update文の途中(実際にはSQLログでbindまで出力されexecuteがされていない)
でフリーズしてしまっているのが直接の原因かと考えております。

>   たとえば、WebアプリケーションではDBに対してリクエストを投げて、応答
>   がないとキャンセルするようなことが頻繁に起ります。

応答がないとキャンセするするようなことというのはタイムアウトのような
ことを想定されているという認識でよろしいでしょうか?
その中でもしWebアプリケーションでキャンセルが発生した場合上記
記載したようにupdate文の途中で止まってしまうようなことが起こりえるのでしょう
か?
(exceuteまでは実行されるのではと想定しておりましたが)


> pgpool-IIのプロセスは終了し、ロックを保持したままの残留プロセス
> が終了したため、一斉に更新がかかりサーバの高負荷状態に陥った。。
> というシナリオが考えられるかもしれません。

なるほどわかりました。
別環境で試してみます。

以上よろしくお願いします。


> -----Original Message-----
> From: Yoshiharu Mori [mailto:y-mori @ sraoss.co.jp]
> Sent: Tuesday, February 16, 2010 12:23 PM
> To: pgpool-general-jp @ sraoss.jp
> Cc: Eiichiro Sakai
> Subject: Re: [pgpool-general-jp: 732] Re: pgpool-IIでの障害について
> 
> 盛です。
> 
> > メーリングリスト各位
> >
> > お世話になります。
> > 酒井です。
> >
> > 先日[pgpool-general-jp: 723]をポストさせていただきましたが、
> > その後調査を進めたところ1の現象は若干異なっていてpostgresのMLが
> > 適切かと思われますので、postgresのMLの方に再度ポストさせていただきます。
> > お騒がせいたしました。
> 
> 遅れてしまいましたが、
> 1の現象についてですが、pgpool-II2.2.2までは、ロックを獲得したまま
> プロセスが残留する可能性がありました。
> pgpool-II 2.2.3以降では修正されています。
> 
> -->
> * バックエンドにSQLを投げ、その応答を待っている間にクライアントが
>   pgpoolに対するコネクションを切断したことが検出できるようになりました。
>   たとえば、WebアプリケーションではDBに対してリクエストを投げて、応答
>   がないとキャンセルするようなことが頻繁に起ります。この場合、今までは
>   pgpoolやPostgreSQLのプロセスが残ってしまい、同時接続数が枯渇したり、
>   ロックを取ったままのトランザクションが残るなどしてシステム全体に影響
>   を与えることがありました。今回の修正により、こうした状況が検出できる
>   ようになっただけでなく、SQLの応答待ちの間にクライアントがコネクショ
>   ンを切断した際には、SQLコマンドのキャンセルをpgpoolが行なって、ロッ
>   ク待ちなどのバックエンドプロセスが残るのを防ぐことができるようになり
>   ました(Tatsuo)。
> -->
> 
> > 2の現象について何かご存知の方がいらっしゃれば引き続き
> > ご教授いただければと思います。
> 
> pgpool-IIのプロセスは終了し、ロックを保持したままの残留プロセス
> が終了したため、一斉に更新がかかりサーバの高負荷状態に陥った。。
> というシナリオが考えられるかもしれません。
> 
> 
> >
> > 以上よろしくお願いします。
> >
> >
> > >
> > > メーリングリスト各位
> > >
> > > はじめまして。
> > > 酒井と申します。
> > >
> > > pgpoolを運用しておりまして、下記のような障害に
> > > 遭遇し助言をいただきたくポストさせていただきました。
> > >
> > > 1.pgpoolから2台のpostgresにレプリケーションモードで運用しているの
> です
> > > が、
> > > (ロードバランスは使用しておりません)
> > > あるSQL(select for update)が実行中のまま応答が返ってこなくなり
> > > その後新規のリクエストがpgpoolで実行中(idle in trunsaction)のまま滞留
> した
> > > 状
> > > 況に
> > > 陥りました。
> > > 同一SQLを実行しても普段はすぐに返されるSQLで、postgreのSQLログにも
> > > deadlockが
> > > 発生してる
> > > ような記録は残っておらず、何が起因でこのような現象となったのか不明な状
> 況で
> > > す。
> > >
> > > postgresのMLにポストすべき内容かもしれませんが、もし同様の現象のご経
> 験が
> > > ある方がいらっしゃれば何を確認すればいいのか、もしくはどのように
> > > 回避すべきかご教授いただけないでしょうか?
> > >
> > > 2.上記現象となった際にpgpoolを「-m fast stop」で停止したところ、
> > > すぐにOS自体からの応答がなくなりsshで接続することもできない状況となっ
>> > > しま
> > > いました。
> > > (結局電源ON/OFFを実施いたしました)
> > > なんら考えられる原因などございましたらご教授いただければと思います。
> > > 上記停止タイミングで下記のログが大量に出力されていました。
> > > ERROR: pid 30917: pool_read_kind: kind does not match between
master(69)
> > > slot[1] (83)
> > > ERROR: pid 30917: pool_do_auth: failed to read kind before
BackendKeyData
> > >
> > > [環境]
> > > ・OS:CentOS5(64bit)
> > > ・pgpool:2.1
> > > ・postgres:8.3.7
> > >
> > > お忙しいところ申し訳ありませんが、何卒よろしくお願いいたします。
> > >
> > > ---------------------------------------
> > > Agate Inc.
> > > 酒井 英一郎
> > > E-Mail:sakai @ agate-japan.com
> > >
> > >
> > >
> > >
> > > ------------------------------
> > >
> > > _______________________________________________
> > > pgpool-general-jp mailing list
> > > pgpool-general-jp @ sraoss.jp
> > > http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
> > >
> > >
> > > 以上: pgpool-general-jp まとめ読み, 41 巻, 11 号
> > > ************************************************
> >
> > _______________________________________________
> > pgpool-general-jp mailing list
> > pgpool-general-jp @ sraoss.jp
> > http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
> 
> 
> --
> SRA OSS, Inc. 日本支社
> Yoshiharu Mori <y-mori @ sraoss.co.jp>
> http://www.sraoss.co.jp/
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: winmail.dat
型:         application/ms-tnef
サイズ:     7298 バイト
説明:       無し
URL:        http://www.sraoss.jp/pipermail/pgpool-general-jp/attachments/20100216/06c02912/attachment.bin 


pgpool-general-jp メーリングリストの案内