Skip to main content
Skip to content

Использование диска в емкости или рядом с ней

Если корневой или диск ваш экземпляр GitHub Enterprise Server данных находится в полном или почти полном объеме, веб-запросы могут возвращать ошибки и отправки могут завершиться ошибкой.

Предупреждение

Удалите только файлы, описанные в этой статье. Удаление других компонентов может привести к потере данных или неиспользуемой ваш экземпляр GitHub Enterprise Server . Увеличение размера диска требует простоя, поэтому перед началом работы запланируйте период обслуживания.

Симптомы

GitHub Enterprise Server хранит данные на двух дисках: корневой диск, подключенный к /диску, а также диск данных, подключенный по /data/userадресу. Если любой диск заполнен, службы больше не могут записывать в него, и вы можете увидеть любой из следующих элементов.

  • Веб-интерфейс возвращает 500 ошибок.
  • git push Сбой операций.
  • Службы не могут запускаться или перестать отвечать на запросы после перезапуска.
  • Сбой запуска конфигурации, включая триггеры при сохранении параметров в экземпляре Консоль управления или обновлении. Дополнительные сведения см. в разделе Служебные программы командной строки.

Elasticsearch также реагирует на использование диска данных перед заполнением диска. Когда использование достигает 85%, Elasticsearch может прекратить выделение сегментов, а работоспособность кластера становится красной. Красный кластер блокирует запуск конфигурации, который, в свою очередь, блокирует обновления и запуск или остановку репликации на реплике. Сохраняйте использование диска данных ниже 85%и оповещение до этого момента, рассматривая 60% как предупреждение и 75% как критическое. Дополнительные сведения см. в разделе Рекомендуемые пороговые значения оповещений.

Причины

Корневой диск заполняется, когда файлы, записанные операционной системой, и GitHub Enterprise Server службы накапливаются быстрее, чем они очищаются. Наиболее распространенными причинами являются быстро растущие файлы журналов (включая повернутые журналы) и пакеты обновления, скачанные автоматическими проверками обновления или хранящимися в месте, в который они были загружены вручную, например /home/admin/.

Диск данных заполняется как репозиторий, пакет и GitHub Actions данные выходят за рамки подготовленной емкости.

Если GitHub Actions этот параметр включен, журналы транзакций MSSQL являются распространенным причиной заполнения диска данных. В конфигурации высокой доступности базы данных выполняются в модели полного восстановления, для которой требуется репликация, поэтому при выполнении резервного копирования пространство журнала будет использоваться повторно. Если резервные копии не выполняются достаточно часто или завершаются сбоем, журналы продолжают расширяться до тех пор, пока они не заполняют диск данных, или до тех пор, пока журнал не достигнет ограничения на 2 ТБ для каждого файла, что также останавливает регистрацию модулей выполнения.

Подтверждение проблемы

  1. SSH в административную оболочку. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

  2. Проверьте, сколько места используется на каждом локальном диске.

    df -h -t ext4
    

Use% Прочитайте столбец для строки, подключенной /к ней, которая является корневым диском, и строка, подключенная к /data/userдиску данных.

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              98G   93G  1.1G  99% /
/dev/mapper/ghe_user  251G   50G  189G  21% /data/user
  1. Если оба диска сообщают о свободном пространстве, но службы по-прежнему не могут записывать данные, проверьте использование инодера. Диск с свободным местом по-прежнему может быть заполнен инодом.

    df -i -t ext4
    
  2. Определите, что использует пространство, и где есть возможности освободить некоторые. Эти отчеты отображаются как на корневом, так и на дисках данных.

    ghe-check-disk-usage
    

Устранение проблемы

Работа из выходных ghe-check-disk-usage данных. Восстановление пространства быстрее, чем изменение размера и не требует простоя, поэтому попробуйте сначала, где выходные данные дают вам что-то действовать. Если это не так, экземпляру требуется больше хранилища.

Восстановление места на корневом диске

  1. Если в разделе выходных данных перечислены пакеты /var/lib/ghe-updatesобновления, удалите любой выпуск, который вы уже установили, или не планируете установить. Каждый пакет составляет несколько гигабайт. Замените PACKAGE именем файла.

    sudo rm /var/lib/ghe-updates/PACKAGE
    
  2. Если в выходных данных перечислены пакеты /home/adminобновления или где бы они ни были загружены вручную, удалите все, что уже установлено или больше не требуется. Замените PACKAGE путь к каждому из них.

    sudo rm PACKAGE
    
  3. Если выходные данные перечислены большие файлы журнала в /var/log конце .1 или .gzудалите их. Они уже были повернуты и больше не записываются. Замените LOG-FILE путь к каждому из них.

    sudo rm LOG-FILE
    

    Предупреждение

    Эта мера рассматривается как экстренная мера для быстрого освобождения места. Он не отвечает за то, что создает том журнала, поэтому если это продолжается, вращающиеся журналы будут возвращены, и диск будет заполняться снова. Если пространство используется снова после удаления, обратитесь Служба поддержки GitHub , а не повторите этот шаг.

  4. Убедитесь, что пространство было удалено.

    df -h /
    

Восстановление места на диске данных

Это относится только к GitHub Actions включению, так как MSSQL выполняется только в этом случае.

Проверьте анализ журнала транзакций MSSQL в ghe-check-disk-usage выходных данных, в котором перечислены файлы, заканчивающиеся под .ldf``/data/user/mssql/data и флагами, которые являются необычно большими. Эти журналы растут, когда резервные копии не выполняются достаточно часто, чтобы освободить место внутри них, и являются распространенным причиной полного диска данных.

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

Увеличение емкости хранилища

Если ghe-check-disk-usage не было выявлено повернутых файлов журнала, пакетов обновления, старых файлов в /data/user/tmpжурналах транзакций MSSQL или переполненных журналов транзакций, то для восстановления экземпляра не требуется больше хранилища. То же самое применяется, если использование возвращается на тот же уровень вскоре после восстановления пространства.

Увеличьте размер корневого или диска данных, выполнив autoTITLE.

Предотвращение повторения

Использование диска, достигающее емкости один раз, обычно будет делать это снова, поэтому отслеживайте оба диска и действовать перед заполнением.

  • Оповещение об использовании корневого диска и диска данных, чтобы у вас было время реагировать перед заполнением диска.
  • Просмотрите, сколько хранилища на самом деле требуется, а не измените размер минимального размера. Дополнительные сведения см. в разделе Устранение неполадок с выделением ресурсов.
  • Уменьшите объем журнала в источнике, чтобы сменяемые журналы не заполнялись корневым диском. Клиенты, которые опрашивают REST API, часто создают большие объемы данных журнала, а веб-перехватчики являются более эффективной альтернативой. Дополнительные сведения см. в разделе Сведения о веб-перехватчиках.
  • Если GitHub Actions этот параметр включен, запустите резервные копии по расписанию и убедитесь, что они завершены, поэтому журналы транзакций MSSQL не будут сняты. Дополнительные сведения см. в разделе Настройка службы резервного копирования.

Связь Служба поддержки GitHub

Если эти действия не устраняют проблему, или вы не уверены в любом из них, обратитесь Служба поддержки GitHub , а не продолжайте. Дополнительные сведения см. в разделе Создание запроса в службу поддержки.

Если вы уже открыли запрос, присоединение пакета поддержки помогает Служба поддержки GitHub быстрее диагностировать проблему. Дополнительные сведения см. в разделе Предоставление данных в поддержку GitHub.

Примечание.

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

Дополнительные материалы