Подтвердить что ты не робот

Git push fatal: невозможно создать поток: ресурс временно недоступен

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

git push origin master

он возвращает ошибку

Counting objects: 5009, done.
Delta compression using up to 16 threads.
fatal: unable to create thread: Resource temporarily unavailable
error: pack-objects died with strange error

Итак, я могу установить максимальное использование потока для сжатия Delta.

Спасибо за помощь,

Юань Чен

4b9b3361

Ответ 1

Ошибка: "фатальный: не удалось создать поток: ресурс временно недоступен" настоятельно указывает, что на сервере у вас закончилась нехватка памяти, что может произойти, если у вас есть репозиторий с большим количеством больших файлов, упаковки, чтобы занять много памяти или ограничить виртуальную память - либо вообще, либо просто для этой учетной записи из-за установки ulimit.

В любом случае, здесь вы можете запускать команды, чтобы ограничить объем памяти, который может упасть, войдя в удаленную систему (как пользователь, который работает git), и набрав следующие команды:

git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
git config --global pack.threads "1"

Надеюсь, что это сработает.

Ответ 2

"unable to create thread: Resource temporarily unavailable" означает проблему с удаленным сервером (например, больше свободной памяти).

Что касается дельта, у вас есть config, чтобы настроить:

pack.deltaCacheSize

Максимальная память в байтах, используемая для кеширования дельта в git -паках-объектах (1), прежде чем записывать их в пакет.
Этот кеш используется для ускорения фазы объекта записи, не имея необходимости пересчитывать окончательный результат дельта, как только будет найдено наилучшее соответствие для всех объектов.
Переупаковка больших репозиториев на машинах, которые плотно связаны с памятью, может быть сильно затронута этим, особенно если этот кеш подталкивает систему к обмену.
Значение 0 означает отсутствие ограничений.
Наименьший размер 1 байт может использоваться для фактического отключения этого кеша. По умолчанию 256 мегабайт.

pack.deltaCacheLimit

Максимальный размер дельта, который кэшируется в git -паках-объектах (1).
Этот кеш используется для ускорения фазы объекта записи, не имея необходимости пересчитывать окончательный результат дельта, как только будет найдено наилучшее соответствие для всех объектов. По умолчанию 1000.

Вопрос SO "Git pull не работает с ошибкой заголовка плохих пакетов" ссылается на другие pack связанные конфигурации.

Ответ 3

Я также наткнулся на эту ошибку. Чтобы упростить эту ошибку, эта ошибка возникает из-за того, что вы хотите скопировать 100-мегабайтный файл в hdd со свободным пространством 50 Мб (или меньше). Чтобы исправить это, SSH на сервер и выполните следующие команды:

git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"