Рейтинг:2

Ошибка pthread_create (EAGAIN) в большинстве программ

флаг vn

У меня есть vServer (16 ГБ ОЗУ, 6 виртуальных ядер), работающий под управлением Ubuntu Server (Linux 4.15.0) с несколькими док-контейнерами.

Несколько дней назад я развернул новый контейнер, и он просто отказывался запускаться со странными собственными аварийными дампами из docker-compose, большинство из которых включало это сообщение об ошибке:

fork/exec /usr/bin/containerd-shim-runc-v2: ресурс временно недоступен: неизвестно
runtime/cgo: ошибка pthread_create: ресурс временно недоступен SIGABRT:
не удалось создать новый поток ОС (уже есть 5; errno=11) время выполнения: может потребоваться увеличить максимальное количество пользовательских процессов (ulimit -u)

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

Сегодня я хотел запустить свой сервер Minecraft (модифицированный Forge 1.16 на Java 11 без докера), и проблема вернулась:

[136 281 с] [предупреждение] [os, поток] Не удалось запустить поток — ошибка pthread_create (EAGAIN) для атрибутов: размер стека: 1024 КБ, размер защиты: 0 КБ, отсоединен.

И самое странное, что он не может открыть устройство TTY?:

java.io.IOException: не удается запустить программу «stty»: ошибка = 11, ресурс временно недоступен

После этих сообщений сеанс SSH просто заблокировался, а второй терминал показал мне, что я не достиг ни одного предела улимит -а, и с запущенным Minecraft у меня все еще есть 9 ГБ ОЗУ бесплатно. хтоп показывает 90 запущенных задач. Я работаю с серверами Linux уже много лет, никогда не видел подобных ошибок - в чем может быть причина?

Я знаю, что подобные ошибки уже задавались в SF, но ни один из ответов ничего для меня не изменил.

Michael Hampton avatar
флаг cz
Пожалуйста, опубликуйте вывод `virt-what` (установите его, если его нет).
флаг vn
@MichaelHampton показывает `openvz lxc`
Michael Hampton avatar
флаг cz
Что ж, это вдвойне плохая новость. Контейнер внутри контейнера, и вы пытаетесь использовать Docker? Просто остановитесь сейчас и получите настоящую виртуальную машину от другого провайдера.
флаг vn
@MichaelHampton Означает ли это, что мой хостер уже использует два вложенных контейнера? У меня на самом деле никогда не было проблем до сих пор
Michael Hampton avatar
флаг cz
Вот как это выглядит. Или это может быть новый OpenVZ 7, основанный на LXC. В любом случае вы вкладываете контейнеры, Docker нуждается в специальной помощи для этого, и OpenVZ в любом случае очень странно распределяет ресурсы; среди прочего, у него много проблем с Java-приложениями. OpenVZ лучше избегать практически всем.
флаг vn
@MichaelHampton хорошо, я этого не знал ... Я запускаю док-контейнеры в этой системе уже несколько месяцев, и этого никогда не происходило. То есть я ничего не могу сделать, чтобы исправить это, кроме поиска другого провайдера? Еще одна вещь, которую я заметил, это то, что после первого сбоя докера сам bash иногда не может разветвить () новый процесс - с тем же сообщением об ошибке ... это также исходит от виртуализатора?
флаг vn
Это также происходит, когда уже запущено «много» док-контейнеров (в настоящее время у меня их 18, если быть точным).
Рейтинг:1
флаг vn

Наконец нашел проблему: мой хостер ограничивает количество потоков до 700 в своей конфигурации OpenVZ.

Я вижу, что в /proc/user_beancounters. Кажется, что если numproc приближается к 700, возникают эти ошибки. Я ничего не могу сделать, кроме как уменьшить количество потоков / контейнеров докеров.

Ответить или комментировать

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