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


41

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

Cannot write: No space left on device

我想我已经将其跟踪到了此文件,这是df输出

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvda1             1032088   1032088         0 100% /

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

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

Answers:


65

该文件/是您的根目录。如果这是您在中看到的唯一文件系统df,则说明一切。您有一个1GB的文件系统,它已100%充满。您可以开始弄清楚它的用法:

sudo du -x / | sort -n | tail -40

然后/,您可以替换为占用最多空间的路径。(由于sort。,它们将处于结尾。该命令可能需要一段时间。)


19
要以人类可读的格式获取输出,可以使用sudo du -x -h / | sort -h | tail -40(从此答案中)。
mkobit

对于微型AWS AMI实例上的实例,这可能需要一分钟左右的时间才能运行。耐心一点!
Rob Lang博士

该怎么办:sort: write failed: /tmp/sortGmL8oF: No space left on device
dOM

1
@dOM哎呀。尝试清理上的一些空间/tmp。或者,如果需要的话,可以使用诸如的命令逐步缩小范围du -xhs /*
David Schwartz

du -x -h / | sort -h | tail -40 | sort -h -r当使用人类可读的输出时,可用于按降序排序。
维格斯

14

我知道我将在近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

我试图解决它,这是步骤

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

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


8

如果正在运行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引导实例。有很多原因使您以后要感谢自己。


我在EBS上运行,扩展根光盘相当便宜,对吧?幸运的是,我不必使用MySQL,我的项目目前是Mongo / Redis。一些很棒的材料。+1

2

我最近在Amazon Linux上遇到了这个问题。我的crontab出站电子邮件队列/var/spool/clientmqueue为4.5GB。

我通过以下方法解决了它:

  1. 查找大文件: sudo find / -type f -size +10M -exec ls -lh {} \;
  2. 删除大文件: /bin/rm -f <path-to-large-file>
  3. 重新启动服务器实例

问题解决了!


1

我刚刚通过运行以下命令解决了该问题:

sudo apt自动删除

并且删除了许多旧软件包,从而释放了5 GB的空间,例如,有很多软件包,例如“ linux-aws-headers-4.4.0-1028”


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.