私たちのプロトタイプの1つは現在非常に悪いキャッシュシステムを持っています。数分以内にハードドライブがいっぱいになり、システムが使用できなくなる可能性があります。それからやるべきことは、mysqlサービスを再起動してスペースを解放することです。
私の質問:ディスク使用量が95%を超えるとmysqlサービスを再起動する方法はありますか?
私はこれが本物ではないことを知っています。はい、これが実際に解決策ではないことはわかります。しかし、私たちは安定した正しいプロトタイプではなく、デモや他のテスト目的で実行する必要があるプロトタイプについて話しています。
答え1
systemd
起動を使用している場合は、ユニットファイルにmysql
追加できます。LimitFSIZE
それがなければ、次のものをsystemd
使用できますulimit
。
bash -c 'ulimit -f 100; dd if=/dev/zero of=bigfile bs=10M count=1; echo foo'
ただし、どちらの方法も空き領域を含みません。彼らが消費する可能性がどのくらいになるかを事前に計算する必要があります。
たぶんファイルシステムクォータはより柔軟です(私はそれに慣れていません)。実行中のユーザーアカウントがある場合mysql
(おそらくそうかもしれません)、これはオプションです。
答え2
あなたが言ったように、非正統的な解決方法を要求していますが、それを認めるので、空きスペースを確認してくださいdf
df /partition/you/need/to/monitor
出力を解析し、見つかった内容に基づいてmysqlサービスを再起動します。これにはルートアクセスが必要になる可能性があるため、サービスを再起動する権限を自分で付与する必要があります。パスワードのないsudo環境。
cronを使用して、これらすべてのタスクを自動化できます。
答え3
monitを使用している場合は、ファイルシステムを監視し、ディスク容量が不足している場合は、mysqlサービスを再起動するためにこれを行うことができます。
確認するhttps://mmonit.com/monit/documentation/monit.html#filesystem_flags_testing