1

カーネル スワップ デーモンによって引き起こされる高負荷の発生を分析して回避するためのベスト プラクティスは何ですか? バッファー プール サイズなどの MySQL 構成からの直接的な影響はありますか?

4

1 に答える 1

1

安定した Linux システムでは、スワップ ファイルはほとんど使用されないはずです。これが存在する理由は 3 つあります。オーバーコミット アカウンティング (最近は適用されなくなりました)、未使用のコード セグメントをディスクにスワップ アウトしてディスク バッファー用のスペースを確保するため、oom_killer開始前にメモリが不足している場合に警告を表示するためです。アプリケーションを終了します。

MySQL は、さまざまな理由でカーネルの組み込みディスク バッファリングをバイパスします。起動すると、バッファー プールが割り当てられ、そこにディスクからページがキャッシュされます。バッファー プールがいっぱいになると、いくつかのクリーン ページが削除され、いくつかのダーティ ページが書き出されて、より多くのスペースが確保されます。

バッファー プールを使用可能な RAM の量よりも大きく設定すると、RAM がいっぱいになると、カーネルはスワップ ファイルへのページのスワップ アウトを開始します。バッファー プールがいっぱいになると、MySQL はページをデータベース ファイルにスワップ アウトし始めます。これにより、スラッシングが発生し、すべての I/O 操作が (少なくとも) 3 倍になるため、一般的にパフォーマンスが低下します。

これはおそらくあなたが見ているものです。空き RAM に収まるようにバッファ プールのサイズを小さくすることをお勧めします。

于 2012-09-23T12:05:53.233 に答える