Arhn - архитектура программирования

Как решить проблему jenkins «Дисковое пространство слишком мало»?

Я развернул Jenkins на своем компьютере с CentOS, Jenkins работал хорошо в течение 3 дней, но вчера возникла Disk space is too low. Only 1.019GB left. проблема.

Как я могу решить эту проблему, когда мой мастер отключается на несколько часов?


  • Сколько свободного места на диске было, когда вы впервые развернули Jenkins? Возможно, вам следует разместить Jenkins на машине с большим объемом свободного места на диске. 26.04.2012
  • У меня 80 ГБ сервера, и там только 2 работы и 5 сборок. поэтому я не думаю, что у меня меньше памяти. может быть Дженкинс ведет логи 20.10.2020

Ответы:


1

Вы можете легко изменить порог из пользовательского интерфейса jenkins (моя версия 1.651.3):

[узлы jenkins, препятствующие странице мониторинга]


Обновление: как обеспечить большой объем дискового пространства

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

В зависимости от того, что вы строите:

  1. Убедитесь, что вы понимаете, что такое вывод вашей сборки на диск. Если возможно, ограничьте вывод только рабочей областью задания. Используйте плагин для очистки рабочей области, чтобы очистить рабочую область после сборки.
  2. Если процесс должен записывать какие-то данные во внешние папки — очистите их вручную на шагах после сборки.

Альтернатива 1 – предоставление нового ведомого устройства для каждого задания (используйте точечные ведомые устройства — существует множество подключаемых модулей, которые интегрируются с различными облачными провайдерами для предоставления на лету компьютеров по запросу).

Альтернатива 2 – запустить сборку внутри контейнера. Все будет удалено после завершения сборки

22.12.2016
  • А, я смотрел на [имя узла] › configure. Вы описали узлы › configure. nvm imgur.com/a/CeTcA 16.04.2018
  • Это не должно быть ответом, хотя, конечно? Это не решает проблему нехватки места на диске. Это просто скрывает предупреждение от мониторинга узла? 07.11.2018
  • @TryingToLearnJS Я действительно согласен (и я написал этот ответ) - это зависит от вопроса - если кто-то хочет продолжать работать на ведомом устройстве с ‹ 1 ГБ - он отвечает, как настроить его на Jenkins. Если кому-то нужна какая-то методология автоматической очистки, это не так. Но последнее очень сильно зависит от того, что вы используете на Jenkins. 29.11.2018
  • но спасибо за ваш отзыв - я добавил общий раздел, который может ответить на обе проблемы 29.11.2018
  • @orshachar спасибо, чувак! Мне помогло изменение порога. Так как узлы отключаются при опускании ниже, это так менялось, что это позволило мне вернуть их обратно и исправить кое-что. И спасибо за обновленный ответ :) 29.11.2018

  • 2

    Помимо вышеперечисленных решений, есть более «ОБЩИЙ» способ — напрямую удалить самого большого потребителя пространства с машины Linux. Вы можете выполнить следующие шаги:

    1. Войдите в машину Дженкинса (Putty)
    2. cd на путь установки Jenkins

    Используя ls -lart также для отображения скрытой папки, обычно установка jenkin помещается в папку .jenkins/

    [xxxxx ~]$ ls -lart

    drwxrwxr-x 12 xxxx 4096 8 февраля 02:08 .jenkins/

    1. перечислить пробелы в папках

    Используйте df -h, чтобы отобразить дисковое пространство на высоком уровне.

    du -sh ./*/ для вывода общего объема памяти для каждой подпапки в текущем пути.

    du -a /etc/ | sort -n -r | head -n 10 перечислит 10 самых популярных каталогов, занимающих место на диске в /etc/

    1. Удалить старую сборку или другую папку большого размера

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

    Обычно папка ./job/ или папка ./workspace/ может быть самой большой папкой. Пожалуйста, войдите внутрь и удалите базу по мере необходимости (НЕ удаляйте всю папку).

    rm -rf theFolderToDelete

    14.02.2017

    3

    Вы можете ограничить уменьшение дискового пространства, отказавшись от старых сборок. Для этого есть флажок в конфигурации проекта.

    17.05.2012
  • Спасибо, это был очень полезный совет. 03.08.2012
  • Информация о сборках сохраняется на главном сервере. Такого рода проблемы в основном возникают на стороне подчинения, где у каждого задания есть рабочая область, содержащая исходный код и результаты сборки. 20.05.2016

  • 4

    На самом деле это законный вопрос, поэтому я не понимаю отрицательных голосов, возможно, он относится к Superuser или Serverfault. Это мягкий порог предупреждения, а не жесткий предел, когда на диске не хватает места.

    Дженкинс такой же. Вывод таков: для многих небольших проектов системное свойство с именем hudson.diagnosis.HudsonHomeDiskUsageChecker.freeSpaceThreshold можно было бы уменьшить.

    Говоря, что я не проверял это, и есть отказ от ответственности

    Нет гарантии совместимости

    Как правило, эти переключатели часто носят экспериментальный характер и могут быть изменены без предварительного уведомления. Если вы найдете некоторые из них полезными, отправьте заявку, чтобы сделать их официальной функцией.

    26.06.2012
  • Итак, установленные пороги предназначены для предотвращения выхода узла из-за нехватки места? Это не помогает. У нас постоянно возникают проблемы с нехваткой места на подчиненном сервере из-за большого количества проектов. Какое лучшее решение для решения этой проблемы? 20.05.2016
  • Добавьте еще одно ведомое устройство, установите больше места на диске или, что более вероятно, вам нужно получить задания для очистки их рабочего пространства после завершения. Вы можете обнаружить, что вокруг superuser.com/q/9847/81584 лежат ненужные и неожиданно большие файлы. 21.05.2016

  • 5

    У меня такая же проблема. Моя версия jenkins — 2.3, и ее пользовательский интерфейс немного отличается. Поместите это здесь, чтобы это могло помочь кому-то. Увеличение обоих порогов дискового пространства до 5 ГБ устранило проблему.

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

    25.07.2018

    6

    У меня есть задание по очистке со следующими этапами сборки. Вы можете запланировать это @daily или @weekly.

    1. Execute system groovy script шаг сборки для очистки старых заданий:
        import jenkins.model.Jenkins
        import hudson.model.Job
    
        BUILDS_TO_KEEP = 5
    
        for (job in Jenkins.instance.items) {
          println job.name
    
          def recent = job.builds.limit(BUILDS_TO_KEEP)
    
          for (build in job.builds) {
            if (!recent.contains(build)) {
              println "Preparing to delete: " + build
              build.delete()
            }
          }
        }
    

    Вам потребуется установить подключаемый модуль Groovy.

    1. Execute shell шаг сборки для очистки каталогов кеша
    rm -r ~/.gradle/
    rm -r ~/.m2/
    
    echo "Disk space"
    du -h -s /
    
    12.03.2020

    7

    Чтобы проверить свободное место в качестве Jenkins Job:

    Параметры

    • 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}"
    

    Плагины

    Установить описание сборки

    Действия после сборки

    • Регулярное выражение: Free space: (.*)
    • Описание: Free space: \1

    • Регулярное выражение для неудачных сборок: Warning! (.*)

    • Описание неудачных сборок: \1
    06.10.2019

    8

    Для тех, кто не знает, где лежат конфиги, скачайте tmpcleaner с https://updates.jenkins-ci.org/download/plugins/tmpcleaner/

    Здесь вы получите файл hpi. Перейдите в раздел «Управление Jenkins» -> «Управление плагинами» -> «Дополнительно», а затем загрузите сюда файл hpi и перезапустите jenkins.

    Вы можете сразу увидеть разницу, если перейдете в «Управление узлами».

    Поскольку мой jenkins был установлен на сервере Debian, я не понял большинство ответов, связанных с этим, поскольку не могу найти папку /etc/default или файл jenkins. Если кто-то знает, где находится папка /tmp или как ее настроить для debian, дайте мне знать в комментариях.

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

    18.01.2021
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..