Предупреждение
Удалите только файлы, описанные в этой статье. Удаление других компонентов может привести к потере данных или неиспользуемой ваш экземпляр 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 ТБ для каждого файла, что также останавливает регистрацию модулей выполнения.
Подтверждение проблемы
-
SSH в административную оболочку. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).
-
Проверьте, сколько места используется на каждом локальном диске.
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
-
Если оба диска сообщают о свободном пространстве, но службы по-прежнему не могут записывать данные, проверьте использование инодера. Диск с свободным местом по-прежнему может быть заполнен инодом.
df -i -t ext4 -
Определите, что использует пространство, и где есть возможности освободить некоторые. Эти отчеты отображаются как на корневом, так и на дисках данных.
ghe-check-disk-usage
Устранение проблемы
Работа из выходных ghe-check-disk-usage данных. Восстановление пространства быстрее, чем изменение размера и не требует простоя, поэтому попробуйте сначала, где выходные данные дают вам что-то действовать. Если это не так, экземпляру требуется больше хранилища.
Восстановление места на корневом диске
-
Если в разделе выходных данных перечислены пакеты
/var/lib/ghe-updatesобновления, удалите любой выпуск, который вы уже установили, или не планируете установить. Каждый пакет составляет несколько гигабайт. ЗаменитеPACKAGEименем файла.sudo rm /var/lib/ghe-updates/PACKAGE -
Если в выходных данных перечислены пакеты
/home/adminобновления или где бы они ни были загружены вручную, удалите все, что уже установлено или больше не требуется. ЗаменитеPACKAGEпуть к каждому из них.sudo rm PACKAGE -
Если выходные данные перечислены большие файлы журнала в
/var/logконце.1или.gzудалите их. Они уже были повернуты и больше не записываются. ЗаменитеLOG-FILEпуть к каждому из них.sudo rm LOG-FILEПредупреждение
Эта мера рассматривается как экстренная мера для быстрого освобождения места. Он не отвечает за то, что создает том журнала, поэтому если это продолжается, вращающиеся журналы будут возвращены, и диск будет заполняться снова. Если пространство используется снова после удаления, обратитесь Служба поддержки GitHub , а не повторите этот шаг.
-
Убедитесь, что пространство было удалено.
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.
Примечание.
Пакеты поддержки записываются на диск данных по умолчанию. Если диск данных заполнен, создание диска данных может завершиться ошибкой.