Amazon EC2 Ubuntu
Буквально вчера меня встретило то, что меня удивило и было совершенно неожиданным. Я подключился к одному из своих удаленных серверов на AWS, чтобы отправить некоторые изменения, которые я внес в службу генератора отчетов в формате PDF, работающую на EC2. Как только я попытался вытащить свои изменения из Github, меня встретили
[log_config:warn] [pid 10720:tid 140282565658368] (28)No space left on device:
Я был сбит с толку тем, что приложение, работающее на этом сервере, довольно мало. Я понятия не имел, с чего начать поиск. Вот шаги, которые в конечном итоге решили проблему.
- Сначала проверьте, сколько места у вас доступно и какой раздел заполняется, с помощью следующей команды:
$ df -h
Результат будет выглядеть примерно так
Filesystem Size Used Avail Use% Mounted on udev 992M 0 992M 0% /dev tmpfs 200M 21M 180M 11% /run /dev/xvda1 10G 10G 0 100% / tmpfs 1000M 0 1000M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 1000M 0 1000M 0% /sys/fs/cgroup tmpfs 200M 0 200M 0% /run/user/1000
Судя по всему, у экземпляра нет места на диске, но что заполняет все это пространство, которое должно быть пустым?
- Во-вторых, выясните, какие глубоко спрятанные большие файлы занимают много места в хранилище.
$ sudo du -shx /* | sort -h
Это может занять немного времени, после завершения работы будет возвращено следующее
... 4.0K /srv 8.0K /snap 16K /lost+found 28K /root 6.5M /etc 7.1M /tmp 14M /sbin 16M /bin 21M /run 75M /boot 185M /lib 218M /home 550M /var 4.8G /usr
- Похоже, что каталог
/usr
может потребовать дополнительной проверки, измените предыдущую команду.
$ sudo du -shx /usr/* | sort -h
Тогда мы увидим что-то вроде
... 4.0K /usr/games 20M /usr/include 35M /usr/sbin 221M /usr/bin 221M /usr/share 3.8G /usr/src 461M /usr/local 488M /usr/lib
В моем случае каталог /usr/src
заполнялся.
Снова отрегулируйте команду, чтобы мы могли дополнительно проверить каталог /usr/src
.
$ sudo du -shx /usr/src/* | sort -h
В каталоге /usr/src
были большие файлы заголовков Linux, заполнившие диск.
13M /usr/src/linux-headers-4.4.0-1085-aws 13M /usr/src/linux-headers-4.4.0-1087-aws 13M /usr/src/linux-headers-4.4.0-1107-aws 106M /usr/src/linux-aws-headers-4.4.0-1085 106M /usr/src/linux-aws-headers-4.4.0-1087 106M /usr/src/linux-aws-headers-4.4.0-1107
Насколько я знаю, это связано с автоматическими обновлениями на серверах Ubuntu. Я до сих пор не уверен, почему сервер медленно разрушается, не подавая никаких сигналов тревоги, но, по крайней мере, это одна из причин, по которой ваш экземпляр может заполняться.
- Наконец, безопасно очистите эти запоминающиеся заголовки с помощью следующей команды и отпразднуйте свою победу.
$ sudo apt autoremove
Запустите $ df -h
, чтобы проверить и убедиться, что освободили место.
Filesystem Size Used Avail Use% Mounted on udev 992M 0 992M 0% /dev tmpfs 200M 21M 180M 11% /run /dev/xvda1 9.7G 2.9G 6.8G 30% / tmpfs 1000M 0 1000M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 1000M 0 1000M 0% /sys/fs/cgroup tmpfs 200M 0 200M 0% /run/user/1000
Вы также можете использовать $ lsblk
для лучшего обзора
Filesystem Type Size Used Avail Use% Mounted on /dev/xvda1 ext4 9.7G 2.9G 6.8G 30% /
Если вам по-прежнему требуется больше места, просто повторите шаги, описанные ранее, чтобы найти более крупные каталоги или расширить свой раздел. После расширения раздела через консоль AWS не забудьте перезагрузить экземпляр, чтобы применить изменения.