xvda1 已 100% 满,这是什么?怎么修?

Chr*_*rdi 63 linux xen amazon-ec2

我在 EC2 上运行 Linux 实例(我安装了 MongoDB 和 node.js),但出现此错误:

Cannot write: No space left on device
Run Code Online (Sandbox Code Playgroud)

我想我已经追踪到这个文件了,这里是 df 输出

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvda1             1032088   1032088         0 100% /
Run Code Online (Sandbox Code Playgroud)

问题是,我不知道这个文件是什么,我也不知道这个文件是否是问题所在。

所以我的问题是:如何修复“设备上没有剩余空间”错误?

Dav*_*rtz 95

那个文件,/就是你的根目录。如果它是您在 中看到的唯一文件系统df,那么它就是一切。你有一个 1GB 的文件系统,它是 100% 满的。你可以开始弄清楚它是如何使用的:

sudo du -x / | sort -n | tail -40
Run Code Online (Sandbox Code Playgroud)

然后/,您可以替换为占用最多空间的路径。(他们会在最后,感谢sort。该命令可能需要一段时间。)

  • 要以人类可读的格式获取输出,您可以使用`sudo du -x -h / | 排序 -h | tail -40`(来自 [this answer](http://serverfault.com/a/156648/115568))。 (25认同)
  • 对于使用微型 AWS AMI 实例的用户,这可能需要一分钟左右的时间才能运行。要有耐心! (2认同)

小智 24

我知道我在将近 5 年后回复这个帖子,但它可能对某人有帮助,我遇到了同样的问题,我有 m4.xlarge 实例 df -h 告诉 /dev/xvda1 已满,- 100%

Filesystem      Size  Used Avail Use% Mounted on
udev            7.9G     0  7.9G   0% /dev
tmpfs           1.6G  177M  1.4G  12% /run
/dev/xvda1      7.7G  7.7G     0 100% /
tmpfs           7.9G     0  7.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           7.9G     0  7.9G   0% /sys/fs/cgroup
tmpfs           1.6G     0  1.6G   0% /run/user/1000
Run Code Online (Sandbox Code Playgroud)

我试图解决它这里是步骤

sudo find / -type f -printf '%12s %p\n' 2>/dev/null|awk '{if($1>999999999)print $0;}'
Run Code Online (Sandbox Code Playgroud)

帮助我知道这是 docker 容器在谈论我的所有空间,所以我将所有容器推送到我的 docker 注册表然后执行 sudo rm -rf /var/lib/docker/ 它清理了我的空间:) 希望它可以帮助某人:)


Eri*_*ond 11

如果您正在运行 EBS 启动实例(推荐),那么您可以使用我在本文中描述的过程增加根 (/) 卷的大小:

在运行的 EBS 启动 EC2 实例上调整根磁盘的大小
http://alestic.com/2010/02/ec2-resize-running-ebs-root

如果您正在运行实例存储实例(不推荐),则无法更改根磁盘的大小。您必须删除文件或将文件移动到临时存储(例如,/mnt)或附加 EBS 卷并将文件移动到那里。

这是我写的一篇文章,描述了如何将 MySQL 数据库从根磁盘移动到 EBS 卷:

使用 EBS 在 Amazon EC2 上运行 MySQL
http://aws.amazon.com/articles/1663

...并考虑迁移到 EBS 启动实例。以后你会感谢自己的原因有很多。