Задавайте вопросы, мы ответим
Вы не зашли.
В достаточно нагруженном сервисе в последнее время стала вылазить ошибка:
Can't create a new thread (errno 35); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug
Проявляться стало недавно, до этого за 3 года ни разу не видел. В БД есть только одна таблица InnoDB (остальные MyISAM), таблица быстро розрастается, замечено учащение ошибки при >20 млн записей в ней, периодически подчищаем её, но вот сейчас записей менее 10 млн + на сервер добавили 2Гб памяти (к стоящим ранее 2Гб), а ошибка всё равно периодически вылазит.
В кофиге max_connection = 2k, реально эти 2к пока не наблюдались, 500-600 бывало, не более.
Ещё такой момент, есть подозрение, что ошибка стала проявляться только после того, как в кодах пхп стали использовать интерфейс mysqli вместо стандартного mysql, может здесь кто-то что-то знает?
Неактивен
Посмотрите perror 35 на Вашей операционной системе, хоть узнаем, что за ошибка
Неактивен
Хм, я даже и не подумал что это может быть ошибка ОСи, а не сервера БД. Ок, поглядим
Неактивен
# perror 35
OS error code 35: Resource temporarily unavailable
Очень информативно, конечно же Есть повод грешить на память?
Неактивен
А смысл грешить? Давайте попробуем решить проблему. Попробуйте сделать
thread_cache побольше (например, 1024). Так мы создадим потоки единожды,
и, если это проблема ОС создания потоков, обойдем ее.
Неактивен
Просмотр переменных показал thread_cache = 0, сделал 1024, проблема не решалась, 2048 тоже не спасло.
Установлен так же параметр thread_stack = 8M, не знаю стоит ли его уменьшать...
Есть ещё наставления, сенсей?
Неактивен
А пробовали сделать соединения persistent? Судя по документации, достаточно
добавить p: перед именем хоста.
Неактивен
С mysqli не пробовали, ПО немного не ориентировано, но ранее при использовании стандартного интерфейса mysql при постоянніх коннектах наблюдались проблемы, щас уже и не вспомню всё. Ладно, потерпим пока на новое железо переедем
Неактивен