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

Persistent Connections для MySQL

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

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

0
30 сентября 2014, 17:07. Редактировалось 1 раз, последний — 28 октября 2014, 16:14#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.

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

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