[前][次][番号順一覧][スレッド一覧]

mysql:8196

From: OHTSUKA Ko-hei <OHTSUKA Ko-hei <techml@xxxxxxxxxx>>
Date: Sat, 06 Sep 2003 05:55:27 +0900
Subject: [mysql 08196] SELECT GET_LOCK?

大塚です。
複数列SELECTの際は色々ご教授いただきありがとうございました。
何とかうまくいきました。

今回は、おそらくMySQLが原因でサーバがダウンしてしまう件についてなのですが…。
環境は、MySQL4.1.0α、OS RH9、Apache2.0.40、Perl5.8.0、mod_perl1.99です。

運用しているシステムで、Slow Queryのログを取っていて、一つだけ遅いSQL文が
あるのは知っていたのですが、体感的に十分レスポンスも早く、また数週間問題なく
稼動しているので、手が回らない事もあり放っていました。

すると昨晩突然落ちたようなのですが、Slow Queryのログをチェックしてみると、
22:50頃を境に、それまで上記の件のクエリだけでしか発生していなかったSlow
Queryが様々なクエリ(本の数十行走査するだけのクエリでも)で発生するように
なり、しかもそれまではQuery Timeは多くても10前後だったのが数十、しばらく
経つと数百にもなるようになってしまいました。

で、そのどんなクエリでもSlow Queryになってしまったログの先頭にあったのが、
以下のSELECT GET_LOCKのログなのです。

# Time: 030905 22:47:14
# User@Host: root[root] @ localhost []
# Query_time: 11  Lock_time: 0  Rows_sent: 1  Rows_examined: 0
SELECT GET_LOCK('Apache-Session-0c9bb14471a9906f7c3d993c89714577', 3600);

これ自体のQuery Timeは11ですが、これ以降のクエリのQuery Timeは40を下回る
ものはなくなっています。
また発生時間的にも、弊システムのユーザが23時頃から繋がらなくなったと言っていた
のと一致します。

といった事より、これがダウンに繋がったトリガのクエリくさいのですが、私はプロ
グラムの中でこのSELECT GET_LOCKというSQLは使っていません。
perlのDBI等が内部処理上勝手に発行しているものだと思うのですが、これがサーバ
ダウンのトリガになっているという解析は正しいかどうか、また回避するにはどう
すればよいかについて、ご教授賜れば有難く存じます。

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






[前][次][番号順一覧][スレッド一覧]

->    8196 2003-09-06 05:55 [OHTSUKA Ko-hei <tech] SELECT GET_LOCK?                        
      8198 2003-09-06 23:17 ┗[Tatsuhiko Miyagawa <]