Как устранить ошибки «java.io.IOException: No space left on device» в Linux

Проблема

  • Задания не выполняются или вы видите исключения в журнале Jenkins с ошибками, подобными java.io.IOException: No space left on device

Условие

  • Мастера или агенты Jenkins, работающие в Linux

Решение

Нехватка места на диске — одна из наиболее распространенных причин проблем в любой производственной системе, и Jenkins — не исключение. Если вы столкнулись с ошибками «на устройстве не осталось места», процесс устранения проблемы относительно прост.

  1. В сообщении об ошибке должно быть указано, куда система пыталась записать; Например,/var/jenkins_home
  2. В уязвимой системе (либо мастер Jenkins, либо, возможно, агент) запустите df и найдите тома, % использования которых равен 100%.
  3. Для томов, которые используют 100 % блочного хранилища или приближаются к нему, вы можете искать «большие» файлы, используя файлы find. Например, find /var/jenkins_home -size +100M. Или вы можете использовать du -sh * в каталоге и соответственно развернуть. Оба они могут быть очень медленными, если объем большой.
  4. Если обычный dfтом не показывает никаких томов при 100% использовании, возможно, в рассматриваемом томе нет инодов. df -i покажет это как IUse% на 100%.
  5. Когда в томе нет инодов, но кажется, что он имеет достаточно свободного блочного хранилища, это обычно вызвано наличием очень большого количества маленьких или пустых файлов или каталогов. Каждый созданный файл или каталог потребляет 1 inode, и они являются конечным ресурсом. Чтобы найти, где это может происходить, вы можете зайти в каждый каталог тома и выполнить простой find . | wc -l поиск необычно больших чисел. Опять же, это может потребовать углубления, чтобы найти источник проблемы.
  6. Наконец, если ни одна из этих проверок ничего не дает, возможно, задание Jenkins или другой процесс пытается создать один файл, объем которого превышает объем свободного места. Когда том заполнен, процесс завершается с ошибкой, и файл удаляется, поэтому кажется, что проблемы нет. В этом случае для обнаружения вызывающего нарушение задания или процесса потребуется просмотр журналов Jenkins или системы.

Источник: https://support.cloudbees.com/hc/en-us/articles/360014830992-How-to-troubleshoot-no-space-left-on-device-errors-in-Linux

Was this helpful?

0 / 0