No space left on device エラーの原因
Ubuntu 上にある phpMyAdmin を開こうとしたら、「 No space left on device 」というエラーがでた。ちなみに WordPress にもアクセスできなかった。
Contents
エラー
スペースが無いと言っている。
原因
このエラーがでる原因。
- ディスク容量を使い果たした
- inode の枯渇
inode とは、ファイルのサイズとか、更新日時とか、属性情報が書かれたデータのことで、実ファイルとは別に存在している。このデータ領域がなくなることを「 inode の枯渇」と呼ぶようだ。
inodeとは
inode (アイノード) を枯渇させてみる
確認方法
ディスク容量を使い果たした
$ df -h
inode の枯渇
$ df -i
対処
ディスク容量を使い果たした場合
ディレクトリやファイルを消す。
今回容量を食っていたのは MySQL のデータファイルで、テーブルの最適化をすればよかったのだが、ディスク容量を 100 % 使い切っていたため mysql に入ることもできない。
また、 EC2 を使っていたので、ボリュームをあげればいいと思ったが、パーティションのサイズを拡張する growpart
コマンドも打てなかった。
仕方ないので、 AMI を作成し、 AMI から容量を大きくした EC2 インスタンスを作成し直した。
ディスク容量を 100 % 使い切ると何もできなくなるので、使用容量が 80 とか 90 % に達した時点でアラート通知するように設定した方がいい。
inode の枯渇の場合
ファイルや、ファイル数の多いディレクトリを削除する。ディレクトリにも inode は作成される。
カレントディレクトリ内のファイル数が多いディレクトリ
$ sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -r