К содержимому
Tickwise
КритичноПамятьSIG-MEM-003

JVM не может создать поток (OutOfMemoryError: unable to create native thread)

Платформы
Paper · Purpur · один сервер
Проверено
Проверено
Уверенность
Уверенность 85%

Как это выглядит в логе

Достаточно одной из строк. Агент сверяет их с логом локально, на вашем сервере.

logs/latest.log
  • [WARN] native thread

Симптомы

  • Плагины, сеть или задачи перестают работать, сервер может зависнуть или упасть
  • В логе: «java.lang.OutOfMemoryError: unable to create native thread»

Причина

ОС отказала в создании нового потока: исчерпан лимит процессов/потоков (pids limit контейнера, ulimit -u) или нативная память. Чаще всего потоки плодит плагин (утечка потоков).

Вероятные причины

  • Плагин создаёт потоки/пулы и не завершает их (утечка потоков)
  • Низкий лимит pids в контейнере (Docker/Pterodactyl) или ulimit -u
  • Нативная память исчерпана (контейнер у лимита RAM)

Как исправитьНизкий риск

  1. Перезапустите сервер, чтобы вернуть работоспособность.
  2. До падения (или сразу после рестарта с интервалом) снимите список потоков: /spark profiler --thread * или jstack <pid>; ищите сотни потоков с одинаковым именем — по имени пула обычно виден плагин.
  3. Проверьте лимиты: cat /sys/fs/cgroup/pids.max в контейнере, ulimit -u для пользователя сервера; при слишком низком значении попросите хостинг поднять лимит.
  4. Обновите или замените плагин, создающий потоки.

Источники