#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. Я выполнил эти шаги, чтобы решить свою проблему,
- Я попытался выяснить, какие файлы потребляют мое хранилище больше всего, используя приведенную ниже команду
sudo найти / -тип f -размер 10 м -exec ls -lh {} ;
- Как вы можете видеть на скриншоте, оказывается, что неиспользуемые и связанные с докером контейнеры являются источником
- Затем я удаляю все неиспользуемые, остановленные или зависшие изображения
система докеров обрезка -а
В конце концов мне удалось вернуть около 4,4 ГБ!
Ответ №2:
Для сервера (если вы не тестируете Jenkins amp; Nginx), на котором работает Jenkins amp; Nginx, вы должны лучше управлять разделом диска. Ниже приведены несколько возможных способов устранения вашей проблемы.
- Увеличьте существующий размер корневого тома EBS EC2 с 15 ГБ до более высокого значения с помощью консоли AWS EBS.
или
- Найдите файлы, занимающие много места на диске, и удалите их, если это не требуется. Скорее всего, файлы журналов занимают место на диске. Вы можете выполнить следующие команды, чтобы узнать места, которые занимают больше места.
cd /
du -sch * | grep G
или
- Добавьте дополнительный том EBS в свой экземпляр и смонтируйте его в домашнем каталоге Jenkins или в том месте, где используется больше места на диске.