Как освободить место в экземпляре AWS ec2 Ubuntu под управлением nginx и jenkins?

#amazon-web-services #ubuntu #nginx #jenkins #amazon-ec2

Вопрос:

У меня есть экземпляр Ubuntu ec2 под управлением nginx и Дженкинса. Больше нет свободного места для выполнения обновлений, и каждая команда, которую я пытаюсь освободить, не работает. Кроме того, при попытке связаться с Дженкинсом я получаю 502 Плохих шлюза.

Когда я бегу sudo apt-get update , я получаю длинный список ошибок, но главной из них, которая выделялась, была E: Write error - write (28: No space left on device)

Я понятия не имею, почему больше нет места или что это вызвало, но df -h выдает следующий результат:

 Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           394M  732K  393M   1% /run
/dev/xvda1       15G   15G     0 100% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop1       56M   56M     0 100% /snap/core18/1988
/dev/loop3       34M   34M     0 100% /snap/amazon-ssm-agent/3552
/dev/loop0      100M  100M     0 100% /snap/core/10958
/dev/loop2       56M   56M     0 100% /snap/core18/1997
/dev/loop4      100M  100M     0 100% /snap/core/10908
/dev/loop5       33M   33M     0 100% /snap/amazon-ssm-agent/2996
tmpfs           394M     0  394M   0% /run/user/1000
 

Я пытался освободить место, бегая sudo apt-get autoremove , и это дало мне E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.

Я побежал sudo dpkg --configure -a и получил pkg: error: failed to write status database record about 'libexpat1-dev:amd64' to '/var/lib/dpkg/status': No space left on device

Наконец, я побежал sudo apt-get clean; sudo apt-get autoclean , и это дало мне следующие ошибки:

 Reading package lists... Error!
E: Write error - write (28: No space left on device)
E: IO Error saving source cache
E: The package lists or status file could not be parsed or opened.
 

Мы будем очень признательны за любую помощь, чтобы освободить место и снова запустить сервер.

Комментарии:

1. Почему бы не расширить раздел на 15 ГБ, если вам нужно больше места?

Ответ №1:

В моем случае у меня есть приложение с контейнерами nginx, postgresql и gunicorn. Я выполнил эти шаги, чтобы решить свою проблему,

  1. Я попытался выяснить, какие файлы потребляют мое хранилище больше всего, используя приведенную ниже команду

    sudo найти / -тип f -размер 10 м -exec ls -lh {} ;

  2. Как вы можете видеть на скриншоте, оказывается, что неиспользуемые и связанные с докером контейнеры являются источником

введите описание изображения здесь

  1. Затем я удаляю все неиспользуемые, остановленные или зависшие изображения

    система докеров обрезка -а

В конце концов мне удалось вернуть около 4,4 ГБ!

Ответ №2:

Для сервера (если вы не тестируете Jenkins amp; Nginx), на котором работает Jenkins amp; Nginx, вы должны лучше управлять разделом диска. Ниже приведены несколько возможных способов устранения вашей проблемы.

  1. Увеличьте существующий размер корневого тома EBS EC2 с 15 ГБ до более высокого значения с помощью консоли AWS EBS.

    или

  2. Найдите файлы, занимающие много места на диске, и удалите их, если это не требуется. Скорее всего, файлы журналов занимают место на диске. Вы можете выполнить следующие команды, чтобы узнать места, которые занимают больше места.

    cd /

    du -sch * | grep G

    или

  3. Добавьте дополнительный том EBS в свой экземпляр и смонтируйте его в домашнем каталоге Jenkins или в том месте, где используется больше места на диске.