web-dev-qa-db-ja.com

MySQLのメモリ使用量-定期的にFLUSHTABLESを実行する必要があります。そうしないと、大きなページをオンにしてもメモリ使用量が増え続けます。

むしろメモリ+物理コアリッチデータベースサーバーを大きなページに切り替えた後、小さな問題に気づきました。

メモリ使用量は、ある種のメモリリークがあるように見えます。

ただし、FLUSH TABLESを実行すると、約10ギガの使用済みメモリがパージされます(もちろん、待機時間など、いつ実行するかによって異なります)。

添付されているのは、このメモリ使用量を示すためのmuninチャートです。

2日程度ごとにテーブルを強制的にフラッシュする原因は何ですか?

mysql memory usage

添付チャートに関する注意事項:

a)グラフの最初のフラットメモリの使用量は、(Oracle)MySQL5.6を大きなページなしで実行していたときです。

b)10〜11の間の傾斜メモリ使用量は、Percona 5.6WITHラージページを実行していたときでした。 11の終わりに、PerconaからOracle MySQL 5.6に切り替えました(ただし、大きなページをオンのままにすることにしました)。

c)12〜14.5の間の傾斜メモリ使用量は、ラージページが有効になっている(Oracle)MySQL5.6に戻ったときです。このメモリ使用量の増加は、Perconaでのある種のメモリリークが原因であると考えました。そのため、(Oracle)MySQL5.6に切り替えました。大きなページを保持します。

d)14.5前後のメモリ使用量の低下は、最初にFLUSH TABLESを実行しようとしたときです(この時点では、Oracle MySQL 5.6を実行し、再起動せず、単純なFLUSH TABLESを実行するだけです)。

この前後の切り替えの後、原因はpercona 5.6ではなく、大きなページであることがわかりました。

したがって、要約すると:

大きなページを有効にしてメモリ不足を防ぐために、2日ごとにFLUSH TABLESを実行する必要があるのは何ですか?

ピーク時以外にFLUSHTABLESをスケジュールできることは理解していますが、これを適切に解決したいと思います。

ありがとう!

3
anonymous-one

これはメモリリークではないと思います。大きなページがないと、メモリ使用量が上限(上限)に達した可能性があります。これが、メモリ使用量がフラットに見える理由です。大きなページに切り替えた後、MySQLは単に利用可能なメモリをより有効に活用できた可能性があります。システムはスワップにヒットしていません。テーブルのフラッシュを注意深く監視し、停止すると思います。

2
Preston