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

Persistent Connections для MySQL

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

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

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.

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

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

    0: Контрольная точка "Конец инициализации". Время выполнения: 0.006. Запросов: 8, время запроса: 0.001 (12.07)%. Памяти использовано: 520800 байтов

    0: Контрольная точка "Фиксация действия пользователя выполнена". Время выполнения: 0.007. Запросов: 10, время запроса: 0.001 (15.05)%. Памяти использовано: 521128 байтов

    0: Контрольная точка "Основное действие выполнено". Время выполнения: 0.009. Запросов: 17, время запроса: 0.002 (21.52)%. Памяти использовано: 633528 байтов

    0: Контрольная точка "Вспомогательные действия выполнены". Время выполнения: 0.010. Запросов: 21, время запроса: 0.002 (22.52)%. Памяти использовано: 650216 байтов

    0: Контрольная точка "После срабатывания шаблонизатора.". Время выполнения: 0.014. Памяти использовано: 936600 байтов