web-dev-qa-db-ja.com

InnoDBバッファー使用量とは何ですか?

Mysql WorkbenchでServer > Server Statusというフィールドがあります"InnoDB Buffer Usage"実行中のクエリがない場合でも "95%"です。どうして?新しいクエリでのパフォーマンスに影響しますか?それをクリアする方法はありますか?

8
dax90

データセットがバッファプールよりも大きいと仮定すると、95%の使用率でデータセットを使用することは正常なだけでなく、望ましい状態ですです。メモリにできるだけ多くの情報が必要です。ハードウェアとリソースが使用されるため、次の読み取りと書き込みの両方をディスクにアクセスするよりも速く実行できます。

別のことはそのメモリ使用量が効果的に使用されている場合かどうか:読み取りヒット率が高く、書き込みを効果的にバッファリングできるかどうかは、ディスクIOPSの数を監視することで確認できます( InnoDBおよびOS統計のクエリ)およびバッファープールコンテンツ(information_schemaテーブルで利用可能)。

サーバーがアイドル状態の場合、メモリ使用量を気にする必要はありません(この場合も、データセットがバッファプールよりも大きく、バッファプールが物理メモリよりも小さいと想定)-バッファプールは自然に満たされますデータを読み書きするときそして、LRUポリシーのより複雑なバージョンとして多かれ少なかれ使用されます(使用されるデータが最初に追い出されます)。専用サーバーではないため(バッファープールの使用率を下げるため)、他の目的でそのメモリを使用する場合を除き、ほとんどの人は、バッファープールを完全に使用することが望ましい状態であることを羨むでしょう。

ほとんどのオペレーティングシステムは同じ方法で(ファイル)をキャッシュすることに注意してください。他の目的でメモリが使用されない限り、可能な限り多くのデータをメモリに収めようとします。

サーバーを再起動すると、通常、ほとんどのバッファプールがクリアされますプリロードするように構成されていない限り。

10
jynus