Intellect Board Pro
Расширяемый движок форума с разделами разных типов
Объявление
Началось открытое тестирование версии 3.05 RC1
Перейти к скачиванию
Привет, гость!

Persistent Connections для MySQL

Или как избежать ошибки too many connections

Настройки отображения темы Показывать по сообщений с сортировкой .
Выводить , отправленные .
Одна страница
Распечатать
4X_Pro
Основатель проекта
Всего сообщений: 396
Зарегистрирован: 22 сент. 2014 г., 18:56
Откуда: Москва, Перово
Рейтинг пользователя: 15

0
. Редактировалось 1 раз, последний — #1
Intellect Board позволяет использовать Persistent Connections для MySQL. Для этого нужно в файле etc/ib_config.php прописать параметр DB_persist, равный единице.
Однако следует учитывать, что persistent connections далеко не всегда могут давать прирост производительности, в ряде случаев возможен обратный эффект: ее снижение или даже появление ошибок too many connections. Связано это с тем, что у каждого рабочего потока Apache свой пул постоянных соединений. Таким образом, если у нас есть 20 рабочих процессов Apache, и во время разового всплеска нагрузки (скажем, про проходе поискового робота) установит по 10 соединений с MySQL, то в итоге образуется целых 200 соединений, из которых после того как всплеск нагрузки завершится, реально будет использоваться всего несколько.
Чтобы этого избежать, рекомендую придерживаться следующих правил:
использовать persistent connections только если MySQL вынесен на отдельный сервер и ограничить максимальное количество постоянных соединений достаточно небольшим количеством с помощью опции mysqli.max_persistent в php.ini (в частности, на сервере, где стоит этот сайт, разрешено всего 2 постоянных соединения).
выставить максимальное количество подключений MySQL (max_connections в my.cnf) как минимум в два раза больше, чем максимально возможное количество постоянных соединений (т.е. max_persist * число_рабочих_процессов).

В ситуациях, когда и MySQL и форум размещены на одном сервере более эффективным с точки зрения производительности оказывается использование обычного соединения с подключением через Unix-сокеты, а не через TCP/IP.

Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.

Одна страница
Распечатать

У вас нет прав для отправки сообщений в эту тему.