1

mysql (5.0.60) は負荷がかかると一度に最大数分間フリーズすることが多く、その間サーバーは完全に応答しません。これは、innotop がメイン スレッドの状態を「チェックポイントを作成中」として示している場合にのみ発生するように切り分けることができました。

この時点で、サーバーは実際に何をしているのでしょうか?

4

3 に答える 3

1

私はPradeepのコメントを拡張すると思いました:

InnoDB(デフォルト)のファジーチェックポイントは、ダーティページをディスクにフラッシュするのを非常に簡単に遅らせることができます*。これにより、ログファイルの終わりに近づき、チェックポイントが強制されるときに問題が発生する可能性があります。

これはよく知られているInnoDBの問題であり、役立つサードパーティのパッチがあります。XtraDBでは、innodb_adaptive_checkpointは、終わりが近づくにつれてページのフラッシュを高速化します。

http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_io

  • 理由の説明はもう少し複雑です。メインスレッドには、サーバーがページをフラッシュするために「ビジー」であるかどうかを判断するためのハードコードされた定数がいくつかあります。たとえば、1秒あたり100を超えるIO操作がすでに発生している場合(「IOPS」)などです。もちろん、100 IOPSは、単一の7200RPMディスクが完了できる操作の数であり、サーバーにRAIDと複数のディスクがある場合は意味がない場合があります。XtraDBには、innodb_io_capacityを記述するためのオプションもあります。

同様のパッチがInnoBaseによって1.0.4プラグインでリリースされました(公式のMySQLリリースにはまだ含まれていません)。

于 2009-08-29T04:44:33.970 に答える
1

チェックポインティングは、データベースサーバーがメモリ内のすべての変更をディスクにコミットするときです。

于 2009-07-09T00:43:47.197 に答える
1

これはあなたの質問に答え、あなたの問題に対するいくつかの解決策もあります:

ご存知かもしれませんが、Innodb ストレージ エンジンは、復旧戦略の一部としてファジー チェックポイント手法を使用します。これは非常に優れたアプローチであり、変更されたページ全体をフラッシュするためにデータベースが「停止」する必要がなく、代わりにダーティ ページのフラッシュが小さなチャンクで徐々に行われるため、データベースの負荷が非常に均等になります。

http://www.mysqlperformanceblog.com/2006/05/10/innodb-fuzzy-checkpointing-woes/

于 2009-07-09T00:33:10.003 に答える