アイテム削除時およびアイテム追加時のディスク領域の開放について

下記の構成のシステムです。
RHEL6.4
zabbix2.2.12
mysql5.7.17-1

2点質問事項があります、ご存知の方がいればご教示いただけないでしょうか。

あるアイテムを追加して、ヒストリ設定を45日としました。
45日間でmysqlのDBの領域が1.3GB程度増加しました。

①上記のアイテムを削除すると、housekeeperが動作し、
 対象のヒストリを削除すると認識しているのですが、
 実際のディスク領域も1.3GB程度減少するものでしょうか。

②上記でディスク領域自体は減少しなかったとして、
 アイテムを削除後に、ヒストリ設定を45日に設定した新規の同様のアイテムを追加した場合、
 DBの領域は、プラスで1.3GB増えるか、
 それとも、削除されたDBの領域を使いまわすため、ディスク領域自体は増加しないでしょうか。

mysqlよりの内容である気がしますが、ご存知の方がいればご教示いただきたいです。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真


アイテムが削除されてもディスクの使用領域は削減されません。
すぐに空き領域を解放したいのであれば、ALTER TABLEなどを使用
して、再構成させるなどの対応が必要です。


すでに確保された領域内に書き込める空き領域があれば、その部分
にデータが書き込まれたはずです。

ご参考:
https://dev.mysql.com/doc/refman/5.6/ja/optimize-table.html
https://dev.mysql.com/doc/refman/5.7/en/optimize-table.html

広瀬です

①実際のディスク領域も現象するか

⇒減少しません。ロールバック領域に移動するだけです。但し、ALTERかOPTIMIZE TABLEを実行
 すれば削減が可能です(MySQL5.7なら、ALTERはロックされずに実行可能になったはず)

②減少しなかったとして

⇒データを蓄積するテーブル(history/history_uint等)は大HouseKeeperで指定された量をDelete
 しつつ、新規にデータを貯めていくので稼働開始に比べては増加量は鈍くなります

ご質問の件はZabbixとしての問題ではなく、MySQLの仕様に基づくものですので、Zabbix以外でも
同じ事が言えます。

ユーザー shimizu の写真

遅い時間に、直接zabbixの質問で無いにもかかわらず、回答いただきありがとうございます。
アイテムを削除した後に、ALTER TABLEかOPTIMIZE TABLEで実際のディスク領域の開放が必要なのですね。
運用中にALTERやOPTIMIZEを実行するかどうかは、自分で調べて検討させていただきます。

ディスク領域がギリギリの中でアイテムを減らしたり、増やしたりする運用にして欲しいといわれ、
アイテムを減らしても、ディスク領域が減らず、アイテムを増やすたびにディスク領域が増えることを気にしておりました。
増減させるアイテムは、ほとんど同じ設定なので、アイテムを増やした分だけ、ディスクが増加するということは
なさそうですね。

TNKさん、wakabaさんありがとうございました。

ユーザー TNK の写真

ディスク領域が限られていて、消費するディスク容量を削減したい
ということを優先されるのであれば、

 ・InnoDBを使用している
 ・DBサーバのCPUの処理能力に余裕がある

環境であれば、圧縮機能を使用するという選択肢もあるかもしれま
せん。

ご参考:
https://dev.mysql.com/doc/refman/5.6/ja/innodb-compression.html
https://dev.mysql.com/doc/refman/5.7/en/innodb-compression.html