Как решить проблему Дженкинса "Дисковое пространство слишком мало"?
Я развернул Jenkins на своем компьютере CentOS, Jenkins работал хорошо в течение 3 дней, но вчера возникла проблема Disk space is too low. Only 1.019GB left.
.
Как я могу решить эту проблему, она отключит моего мастера на несколько часов?
Ответы
Ответ 1
Вы можете легко изменить пороговое значение для пользовательского интерфейса jenkins (моя версия 1.651.3):
[
]
Обновление: Как обеспечить много места на диске
Эта функция предназначена для предотвращения работы на ведомых устройствах с небольшим свободным дисковым пространством. Снижение порога не решит тот факт, что некоторые задания не очищаются должным образом после завершения.
В зависимости от того, что вы строите:
- Убедитесь, что вы понимаете, что выводит диск вашей сборки - если это возможно, - ограничьте вывод только рабочей областью задания. Используйте плагин очистки рабочего пространства, чтобы очистить рабочее пространство как шаг после сборки.
- Если процесс должен записать некоторые данные во внешние папки - очистите их вручную на этапах после сборки.
Альтернатива1 - предоставление нового ведомого на задание (используйте спотовых ведомых - есть много плагинов, которые интегрируются с различными облачными провайдерами для предоставления на лету машин по запросу)
Alternative2 - запустить сборку внутри контейнера. Все будет отброшено после завершения сборки
Ответ 2
Помимо вышеупомянутых решений, есть более "ОБЩИЙ" способ - напрямую удалить самого крупного потребителя пространства с машины Linux. Вы можете выполнить следующие шаги:
- Войти в машину Дженкинс (Замазка)
- перейдите на путь установки Jenkins
Использование ls -lart
для вывода списка скрытых папок, как правило, jenkin установка находится в папке .jenkins/
[xxxxx ~]$ ls -lart
drwxrwxr-x 12 xxxx 4096 Feb 8 02:08.jenkins/
- перечислить места в папках
Используйте df -h
, чтобы показать дисковое пространство на высоком уровне
du -sh ./*/
перечислить общий объем памяти для каждой подпапки в текущем пути.
du -a /etc/ | sort -n -r | head -n 10
перечислит 10 лучших каталогов, занимающих место на диске в /etc/
- Удалить старую сборку или другую папку большого размера
![enter image description here]()
Обычно папка ./job/
или папка ./workspace/
могут быть самой большой папкой. Пожалуйста, зайдите внутрь и удалите базу по необходимости (НЕ удалить всю папку).
rm -rf theFolderToDelete
Ответ 3
Вы можете ограничить сокращение пространства на диске, отбросив старые сборки. Для этого в настройке проекта есть флажок.
Ответ 4
Это действительно законный вопрос, поэтому я не понимаю downvotes, возможно, он принадлежит Superuser или Serverfault. Это порог мягкого предупреждения, а не жесткий предел, когда диск находится вне места.
Дженкинс - то же самое. Вывод для многих небольших проектов может быть уменьшен системное свойство под названием hudson.diagnosis.HudsonHomeDiskUsageChecker.freeSpaceThreshold
.
Говоря, что я его не тестировал, и есть отказ от ответственности
Гарантия совместимости
В общем, эти коммутаторы часто являются экспериментальными по своей природе и могут быть изменены без предварительного уведомления. Если вы найдете некоторые из этих полезных, пожалуйста, напишите билет, чтобы продвинуть его к официальной функции.
Ответ 5
У меня та же проблема. Моя версия jenkins - 2.3, и его интерфейс немного отличается. Помещение этого здесь так, чтобы это могло кому-то помочь. Увеличение порогового значения дискового пространства до 5 ГБ решило проблему.
![enter image description here]()
Ответ 6
Чтобы проверить свободное место как Дженкинс Джоб:
Параметры
FREE_SPACE
: требуется свободное место в ГБ.
Работа
#!/usr/bin/env bash
free_space="$(df -Ph . | awk 'NR==2 {print $4}')"
if [[ "${free_space}" = *G* ]]; then
free_space_gb=${x/[^0-9]*/}
if [[ ${free_space_gb} -lt ${FREE_SPACE} ]]; then
echo "Warning! Low space: ${free_space}"
exit 2
fi
else
echo "Warning! Unknown: ${free_space}"
exit 1
fi
echo "Free space: ${free_space}"
Плагины
Установить описание сборки
Действия после сборки