EC2インスタンスの再起動
まずはCloud9が動いているEC2インスタンスを再起動。
結果変わらず。
エラーの原因
- ディスク容量を使い果たした
- inode の枯渇
のどちらか
問題の特定
ディスク容量を使い果たした
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 483M 60K 483M 1% /dev
tmpfs 493M 0 493M 0% /dev/shm
/dev/xvda1 9.8G 9.6G 68M 100% /
100%って書いてあるのでたぶんこれが原因。
inodeの枯渇
inode とは、ファイルのサイズとか、更新日時とか、属性情報が書かれたデータのことで、実ファイルとは別に存在している。このデータ領域がなくなることを「 inode の枯渇」と呼ぶ
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 123467 434 123033 1% /dev
tmpfs 126142 1 126141 1% /dev/shm
/dev/xvda1 655360 427041 228319 66% /
こっちは66%だから大丈夫そう。やはり原因はディスク容量
どこが重いのか確認
ディスク容量を使い果たしているとのことなので、データを削除すればたぶん解決する。
削除の前にどこが重いのかを確認してみる。
$ sudo du -sh /*
7.1M /bin
72M /boot
4.0K /cgroup
60K /dev
12M /etc
2.1G /home
209M /lib
21M /lib64
4.0K /local
16K /lost+found
4.0K /media
4.0K /mnt
12K /nvm-install.txt
896M /opt
du: cannot access ‘/proc/5597/task/5597/fd/4’: No such file or directory
du: cannot access ‘/proc/5597/task/5597/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/5597/fd/4’: No such file or directory
du: cannot access ‘/proc/5597/fdinfo
/4’: No such file or directory
0 /proc
51M /root
16K /run
14M /sbin
4.0K /selinux
4.0K /srv
0 /sys
96M /tmp
2.9G /usr
3.3G /var
重いのはhome
、usr
、var
の3つ。
このうちusr
とvar
はデフォルトでこれくらい重いっぽいので(新たにCloud9の環境を作って確認した)、homes
内のファイルを削除していく。
ファイルの削除
-
homes/environment
内に自分が作ったアプリがあるので、不要になったアプリを削除。 - 削除しないアプリに関しても、キャッシュは一旦
$ rails tmp:cache:clear
で削除。
これでとりあえず解決しました。
その他
今回はファイルを削除して対応したけど、Cloud9の容量を増やして解決する方法もある。
なんかお金かかりそうだからなるべくやりたくないけど、いよいよ容量が足りなくなったらその方法しかなさそう。