Ошибка: ER_CANT_CREATE_THREAD: Невозможно создать новый поток (ошибка 11);

Когда сервер A запускал приложение node.js, подключенное к двум отдельным серверам mysqldb B и C.Сервер A сообщил об ошибках следующим образом:

Error: ER_CANT_CREATE_THREAD: Can't create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug
    at Handshake.Sequence._packetToError (/home/abc/workspace/node_modules/my$
    at Handshake.ErrorPacket (/home/abc/workspace/node_modules/mysql/lib/prot$
    at Protocol._parsePacket (/home/abc/workspace/node_modules/mysql/lib/prot$
    at Parser._parsePacket (/home/abc/workspace/node_modules/mysql/lib/prot

Конфигурация RAM для серверов mysql db B и C - 192 ГБ, сервер Ubuntu 18.04.3 LTS, mysql 8 и его файл mysqld.cnf, настроенный как:

max_connections = 100000
innodb_buffer_pool_size = 20G
tmp_table_size = 1G
max_heap_table_size = 1G
read_rnd_buffer_size = 1G
thread_cache_size = 100000
open_files_limit = 1000000
table_definition_cache = 40096
table_open_cache = 1000000

Кто-то имеет представление за эту проблему.

Большое спасибо!

0
задан 12 December 2020 в 18:14

1 ответ

Одним из наиболее распространенных решений в этой ситуации является обновление программного ограничения nproc. для MySQL. Вот как вы можете это сделать:

  1. Откройте терминал
  2. Редактируйте файл конфигурации лимитов:
    sudo vi /etc/security/limits.conf
  3. Ищите строку, которая начинается:
    mysql soft nproc
  4. Обновите значение по умолчанию 2048 на 4096
    (если вы вообще не видите такой строки, вы можете добавить ее в конец файл: mysql soft nproc 4096)
  5. Сохраните файл и перезапустите MySQL

Это ускорит программный nproc и позволит серверу создавать больше потоков. Основываясь на конфигурации оборудования, которую вы описали, у системы будет более чем достаточно мощности, чтобы справиться с этим.

Надеюсь, это решит вашу проблему.

0
ответ дан 12 December 2020 в 12:46

Другие вопросы по тегам:

Похожие вопросы: