mysql:14078
From: Yasufumi Kinoshita <Yasufumi Kinoshita <kinoshita.yasufumi@xxxxxxxxxx>>
Date: Fri, 22 Jun 2007 18:04:13 +0900
Subject: [mysql 14078] Re: [再送]innodb_max_purge_lagについて
木下です。 Katsuyuki Sakai wrote: > 木下様 > > ありがとうございます。 > >> これはpurgeの動作そのものを制御するパラメータではなく、 >> purgeが間に合わない場合(マシンの性能が低い or 処理が激しい?)に、 >> 故意にパフォーマンスを下げて(DMLのレスポンスを遅くする)、 >> purgeが間に合うように手加減するためのものです。 >> 通常は利用しないと思います。 > > ということは、パージスレッド自体は定期的に走っており、デフォルトでは > purge_lagが0になるように目指す。 > ただし、遅いマシンや処理が激しいマシンなどでpurge_lagが際限なくたまって > いってしまう場合、なんとかパージ処理が追いつくように、わざとDMLにdelayを > 入れる。 > という解釈で正しいでしょうか? 概ねそういう感じだと思います。 「purge_lag」と言いつつ、単に個々のSQLの処理自体にsleepが入るだけみたいです。 確かにわかりづらい名前のパラメータですね。。 > > 07/06/22 に Yasufumi Kinoshita<kinoshita.yasufumi@xxxxxxxxxx> さんは書 > きました: >> 木下です。 >> >> > パージ操作にはtablespaceなどへのディスクアクセスが伴うため、パージ操 >> 作が >> > ボトルネックになる可能性があります。 >> > なので、innodb_max_purge_lagのデフォルト値0ではディスクアクセスが頻繁に >> > 起きてボトルネックになる、という考え方は正しいでしょうか? >> > また、innodb_max_purge_lagの値を適宜増やして、後でまとめてパージ操作 >> して >> > もらうことでパフォーマンスアップを図るという考え方は正しいでしょうか? >> >> 多分違います。 >> これはpurgeの動作そのものを制御するパラメータではなく、 >> purgeが間に合わない場合(マシンの性能が低い or 処理が激しい?)に、 >> 故意にパフォーマンスを下げて(DMLのレスポンスを遅くする)、 >> purgeが間に合うように手加減するためのものです。 >> 通常は利用しないと思います。 >> どうでしょうか? >> >> Katsuyuki Sakai wrote: >> > 酒井と申します。 >> > 先ほどは変なエンコーディングでメールを送信してしまい、申し訳ございま >> せん >> > でした。 >> > 念のため再送させていただきます。 >> > >> > ----------------- >> > >> > innodb_max_purge_lagについて教えていただきたく存じます。 >> > >> > InnoDBはmulti-versionedストレージエンジンなので、UPDATEやDELETEで変更さ >> > れた行の変更される前の古い情報を保持しておくかと思います(あるトラン >> ザク >> > ションが変更前のデータを読む必要性ががあるかもしれないため)。 >> > >> > innodb_max_purge_lagのデフォルト値は0なので、UPDATEやDELETE後MySQLは >> 直ち >> > にパージスレッドを走らせ、そのスレッドによって古い情報はパージされる >> ので >> > しょうか?(ただし古い情報を読む必要があるトランザクションが存在しな >> い限 >> > り) >> > >> > マニュアルなどを読むと、古い情報の行数をpurge_lagとし、purge_lagの値が >> > innodb_max_purge_lagの値を超えた場合、 >> > INSERTとUPDATE、DELETEの各操作が((purge_lag/innodb_max_purge_lag)×10)-5 >> > ミリ秒だけ遅延され、その間にパージスレッドが走る、と読めます。 >> > http://dev.mysql.com/doc/refman/5.0/en/innodb-parameters.html >> > http://dev.mysql.com/doc/refman/5.0/en/innodb-multi-versioning.html >> > http://forums.mysql.com/read.php?22,122206,122800#msg-122800 >> > >> > パージ操作にはtablespaceなどへのディスクアクセスが伴うため、パージ操 >> 作が >> > ボトルネックになる可能性があります。 >> > なので、innodb_max_purge_lagのデフォルト値0ではディスクアクセスが頻繁に >> > 起きてボトルネックになる、という考え方は正しいでしょうか? >> > また、innodb_max_purge_lagの値を適宜増やして、後でまとめてパージ操作 >> して >> > もらうことでパフォーマンスアップを図るという考え方は正しいでしょうか? >> > >> > ご返答のほど、よろしくお願いいたします。 >> > >> > -- >> > 酒井 >> > >> > >> > >> >> >> >> > > > -- NTTコムウェア プロジェクト管理統括部 技術SE部門 DB技術グループ 木下 靖文 e-mail: kinoshita.yasufumi@xxxxxxxxxx
14075 2007-06-22 17:06 [Katsuyuki Sakai <sak] [再送]innodb_max_purge_lagについて 14076 2007-06-22 17:16 ┗[Yasufumi Kinoshita <] 14077 2007-06-22 17:53 ┗["Katsuyuki Sakai" <s] -> 14078 2007-06-22 18:04 ┗[Yasufumi Kinoshita <]