Billy Fung

EC2 Disk Full

But not really

Billy Fung / 2017-11-02


I was deploying one of our applications this week but ran into an error where ansible told me No space left on device

This was new to me because the application is a very small Flask application, hosted on ec2 with at least a couple gigs of storage. There was going to be no way that it was actually full.

So I went into the machine and checked

    df -h
    
    Filesystem      Size  Used Avail Use% Mounted on
    udev            487M     0  487M   0% /dev
    tmpfs           100M  8.0M   92M   9% /run
    /dev/xvda1      7.8G  5.7G  1.7G  77% /
    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

This sure doesn’t look like a full disk to me, so I had to think about what else it could be.

    for i in /usr/*; do count=`sudo find $i | wc -l`; if [ $count -gt 10000 ]; then echo $i $count; fi; done

This shows that the culprit is the inodes. In my case, it was a bunch of linux-header files that took up a ton of space. Make sure you don’t delete the actual linux-header you want, check with uname -rv.

Then you can run apt-get autoremove