はじめに
週末、桜が開花したという事で靖国神社に行ってきましたが、標準木を見てもどれが咲いているのかさっぱりわからなかったgrnishiです。桜は8分咲きが綺麗です。
本題
先日、とあるサーバのディスク容量がいっぱいになりました。
Filesystem Size Used Avail Use% Mounted on /dev/vda3 97G 97G 0 100% /
これはこれで恐ろしい話ですし、そもそも監視を入れておきなさいという話ですが、監視用スクリプトがコメントアウトされていました:P
さて、私は容量がやばくなった時はあたりを付けてチェックしていきます。大体容量の原因になるのはログファイルとかですから。 アタックされた時にapacheが大量にログを吐いたとか。
探していると、MySQLのクエリログが40Gぐらいになっている事を発見し削除しました。
rm -Rf query.log
そして、再度ディスク容量を確認しました。
df -ah Filesystem Size Used Avail Use% Mounted on /dev/vda3 97G 97G 0 100% /
あれ?減っていない。なんでだろう?ファイルはきちんと削除されているのに。
当たり前といえば当たり前なのですが、ファイルを削除してもそのファイルをプロセスが掴んでいる場合は削除されずにls等で見えなくなるだけです。
というわけで、今回はmysqldがこのファイルを使用中でしたのでmysqldを再起動して対応しました。
df -ah Filesystem Size Used Avail Use% Mounted on /dev/vda3 97G 54G 38G 59% /
ちなみに、どのプロセスが当該ファイルを使用しているかわからない場合は下記コマンドでプロセスを探します。
sudo lsof | grep query.log mysqld 25544 mysql 13w REG 252,3 17088690 3407981 /var/log/mysql/query.log
以上。小ネタではありますが少々焦ったので報告となります。