运行 Amazon EC2 中的磁盘 space 不足,无法找到我正在使用我的存储空间的内容
Running out of disk space in Amazon EC2, can't find what I am using my storage for
我是 运行 AWS ami,使用美国东部的 T2.large 实例。我试图上传一些数据,我在终端中 运行:
df -h
我得到了这个结果:
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 799M 8.6M 790M 2% /run
/dev/xvda1 9.7G 9.6G 32M 100% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 799M 0 799M 0% /run/user/1000
我知道我没有向实例上传 9.7 GB 的数据,但我不知道 /dev/xvda1
是什么或如何访问它。
我还假设所有 tmpfs
都是临时文件,我该如何删除它们?
为了回答评论中的一些问题,我跑了
sudo du -sh /*
我得到了:
16M /bin
124M /boot
0 /dev
6.5M /etc
2.7G /home
0 /initrd.img
0 /initrd.img.old
4.0K /jupyterhub_cookie_secret
16K /jupyterhub.sqlite
268M /lib
4.0K /lib64
16K /lost+found
4.0K /media
4.0K /mnt
562M /opt
du: cannot access '/proc/15616/task/15616/fd/4': No such file or directory
du: cannot access '/proc/15616/task/15616/fdinfo/4': No such file or directory
du: cannot access '/proc/15616/fd/4': No such file or directory
du: cannot access '/proc/15616/fdinfo/4': No such file or directory
0 /proc
28K /root
8.6M /run
14M /sbin
8.0K /snap
8.0K /srv
0 /sys
64K /tmp
4.7G /usr
1.5G /var
0 /vmlinuz
0 /vmlinuz.old
/dev/xvda1 是您在亚马逊存储系统上基于磁盘的存储。
它是您系统上唯一的存储空间,它包含您的操作系统和所有数据。所以我想 Ubuntu 安装
使用的大部分 space
记住:亚马逊的 T 个实例根本没有任何本地磁盘。
/dev/xvda1
是您的根卷。您列出的 AMI 的默认根卷大小为 20GB
,您可以在此处看到:
描述图像并获取它的块设备映射:
aws ec2 describe-images --image-ids ami-3b0c205e --region us-east-2 | jq .Images[].BlockDeviceMappings[]
查看卷大小
{
"DeviceName": "/dev/sda1",
"Ebs": {
"Encrypted": false,
"DeleteOnTermination": true,
"VolumeType": "gp2",
"VolumeSize": 20,
"SnapshotId": "snap-03341b1ff8ee47eaa"
}
}
{
"DeviceName": "/dev/sdb",
"VirtualName": "ephemeral0"
}
{
"DeviceName": "/dev/sdc",
"VirtualName": "ephemeral1"
}
以 20GB 的正确卷大小启动时,有大量免费 space (10GB)
root@ip-10-100-0-64:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 488M 0 488M 0% /dev
tmpfs 100M 3.1M 97M 4% /run
/dev/xvda1 20G 9.3G 11G 49% /
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 496M 0 496M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/1000
这里的问题似乎是启动实例时使用 10GB
(不知何故,我认为这是不可能的)存储而不是默认的 20GB
。
当您 运行 离开根文件系统 space,并且没有做任何您 知道 消耗 space 的事情时,那么 99 % 的时间 (+/- 98%) 它是一个日志文件。 运行 这个:
sudo du -s /var/log/* | sort -n
您将在 /var/log
中看到所有子目录的列表(这是 Linux 系统的标准日志记录目的地),最后您可能会看到一个条目旁边有一个非常大的数字。如果你在那里没有看到任何东西,那么下一个尝试的地方是 /tmp
(我会用 du -sh /tmp
来做,因为它会打印一个带有 "human" 缩放比例的数字)。如果这不起作用,那么您需要 运行 文件系统根目录上的原始命令,/*
(这可能需要一些时间)。
假设它是一个日志文件,那么你应该看看它,看看相关应用程序是否有错误。如果没有,您可能只需要了解 logrotate.
我是 运行 AWS ami,使用美国东部的 T2.large 实例。我试图上传一些数据,我在终端中 运行:
df -h
我得到了这个结果:
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 799M 8.6M 790M 2% /run
/dev/xvda1 9.7G 9.6G 32M 100% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 799M 0 799M 0% /run/user/1000
我知道我没有向实例上传 9.7 GB 的数据,但我不知道 /dev/xvda1
是什么或如何访问它。
我还假设所有 tmpfs
都是临时文件,我该如何删除它们?
为了回答评论中的一些问题,我跑了
sudo du -sh /*
我得到了:
16M /bin
124M /boot
0 /dev
6.5M /etc
2.7G /home
0 /initrd.img
0 /initrd.img.old
4.0K /jupyterhub_cookie_secret
16K /jupyterhub.sqlite
268M /lib
4.0K /lib64
16K /lost+found
4.0K /media
4.0K /mnt
562M /opt
du: cannot access '/proc/15616/task/15616/fd/4': No such file or directory
du: cannot access '/proc/15616/task/15616/fdinfo/4': No such file or directory
du: cannot access '/proc/15616/fd/4': No such file or directory
du: cannot access '/proc/15616/fdinfo/4': No such file or directory
0 /proc
28K /root
8.6M /run
14M /sbin
8.0K /snap
8.0K /srv
0 /sys
64K /tmp
4.7G /usr
1.5G /var
0 /vmlinuz
0 /vmlinuz.old
/dev/xvda1 是您在亚马逊存储系统上基于磁盘的存储。
它是您系统上唯一的存储空间,它包含您的操作系统和所有数据。所以我想 Ubuntu 安装
使用的大部分 space记住:亚马逊的 T 个实例根本没有任何本地磁盘。
/dev/xvda1
是您的根卷。您列出的 AMI 的默认根卷大小为 20GB
,您可以在此处看到:
描述图像并获取它的块设备映射:
aws ec2 describe-images --image-ids ami-3b0c205e --region us-east-2 | jq .Images[].BlockDeviceMappings[]
查看卷大小
{
"DeviceName": "/dev/sda1",
"Ebs": {
"Encrypted": false,
"DeleteOnTermination": true,
"VolumeType": "gp2",
"VolumeSize": 20,
"SnapshotId": "snap-03341b1ff8ee47eaa"
}
}
{
"DeviceName": "/dev/sdb",
"VirtualName": "ephemeral0"
}
{
"DeviceName": "/dev/sdc",
"VirtualName": "ephemeral1"
}
以 20GB 的正确卷大小启动时,有大量免费 space (10GB)
root@ip-10-100-0-64:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 488M 0 488M 0% /dev
tmpfs 100M 3.1M 97M 4% /run
/dev/xvda1 20G 9.3G 11G 49% /
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 496M 0 496M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/1000
这里的问题似乎是启动实例时使用 10GB
(不知何故,我认为这是不可能的)存储而不是默认的 20GB
。
当您 运行 离开根文件系统 space,并且没有做任何您 知道 消耗 space 的事情时,那么 99 % 的时间 (+/- 98%) 它是一个日志文件。 运行 这个:
sudo du -s /var/log/* | sort -n
您将在 /var/log
中看到所有子目录的列表(这是 Linux 系统的标准日志记录目的地),最后您可能会看到一个条目旁边有一个非常大的数字。如果你在那里没有看到任何东西,那么下一个尝试的地方是 /tmp
(我会用 du -sh /tmp
来做,因为它会打印一个带有 "human" 缩放比例的数字)。如果这不起作用,那么您需要 运行 文件系统根目录上的原始命令,/*
(这可能需要一些时间)。
假设它是一个日志文件,那么你应该看看它,看看相关应用程序是否有错误。如果没有,您可能只需要了解 logrotate.