代码之家  ›  专栏  ›  技术社区  ›  Derek Corcoran

在Amazon EC2中磁盘空间不足,找不到我正在使用的存储用于

  •  4
  • Derek Corcoran  · 技术社区  · 6 年前

    我正在使用一个t2.large实例运行一个aws am i,这个实例使用的是us east。我试着上传一些数据,然后在终端上运行:

    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.7gb的数据到实例中,但是我不知道 /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
    
    3 回复  |  直到 6 年前
        1
  •  2
  •   Brandon Miller    6 年前

    /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的正确卷大小启动时,有足够的可用空间(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 .

        2
  •  1
  •   guest    6 年前

    当您用完根文件系统空间,并且没有执行任何 知道 占用空间,然后99%的时间(+/-98%)它是一个日志文件。运行此操作:

    sudo du -s /var/log/* | sort -n

    您将在中看到所有子目录的列表 /var/log (这是Linux系统的标准日志记录目的地),最后您可能会看到一个条目旁边有一个非常大的数字。如果你在那里什么也没看到,下一个尝试的地方就是 /tmp (我会用它 du -sh /tmp 因为它只打印一个带有“人类”比例的数字)。如果不起作用,则需要在文件系统的根目录上运行原始命令, /* (这可能需要一些时间)。

    假设它是一个日志文件,那么您应该查看它,看看相关应用程序中是否有错误。如果没有,你可能只需要了解 logrotate .

        3
  •  0
  •   MTilsted    6 年前

    /dev/xvda1是您在amazon存储系统上基于磁盘的存储。

    它是系统中唯一的存储设备,包含操作系统和所有数据。所以我猜ubuntu安装使用的大部分空间

    记住:amazon上的t实例根本没有任何本地磁盘。

    推荐文章