Amazon EC2微型实例 – 空间不足?

df -h显示只使用了71%的空间:

 root@ip-xxx-xxx-xxx-xxx:/home/myuser# df -h Filesystem Size Used Avail Use% Mounted on rootfs 7.9G 5.3G 2.2G 71% / udev 10M 0 10M 0% /dev tmpfs 60M 88K 60M 1% /run /dev/xvda1 7.9G 5.3G 2.2G 71% / tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 120M 0 120M 0% /run/shm 

然而,没有什么可以创build一个文件,即使MC不启动

 #mc Cannot create temporary directory /tmp/mc-root: No space left on device (28) 

PHP不能创build文件

 PHP Warning: fopen(/home/.../file.json): failed to open stream: No space left on device in /webdev/www/..../my.php on line 10 

会是什么呢?

我在微型实例上使用Debian 7。

df -h以可读的格式显示磁盘可用空间。 但是这听起来像一个inode表问题,你可以通过df -i来查看。 例如,以下是我在运行Ubuntu 12.04的Amazon ECS微型实例上的inode使用情况:

 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvda1 524288 116113 408175 23% / udev 73475 379 73096 1% /dev tmpfs 75540 254 75286 1% /run none 75540 5 75535 1% /run/lock none 75540 1 75539 1% /run/shm 

根据输出结果,我打赌你的inode表被填满了边缘。 inode表记录每个单独的文件数据。 不只是多少空间。 意思是你可能有71%的使用,但是71%可以填充数千个文件。 所以如果你有大量的小文件,你可能在技术上仍然有空闲空间,但是inode表已经满了,所以你必须清除这些,以使系统再次正常工作。

在清除这个问题上最好的办法不是太清楚,但是如果您知道一个目录中有很多文件可以马上扔掉,我建议您先删除它们。 对于什么是值得的, 这个问题和答案看起来像是有一些体面的想法。