Я использую Gearman в пользовательском приложении Joomla и используя пользовательский интерфейс Gearman для отслеживания активных рабочих и числа рабочих мест.PHP Gearman слишком много соединений mysql
У меня возникла проблема с нагрузкой MYSQL и количеством подключений, я не могу отслеживать проблему, но у меня мало вопросов, которые могут мне помочь.
1: Рабочие Gearman запускают новое подключение к базе данных для каждой работы или имеют одно и то же соединение?
2- Если Gearman запускает новое соединение каждый раз, когда выполняется задание, как я могу изменить это, чтобы все задания имели одинаковое соединение?
3- Как я могу сбалансировать нагрузку между несколькими серверами?
4 Есть ли что-то вроде пакета «Pay-as-you-go» для хостинга MYSQL? Если да, укажите их.
Большое спасибо!
Я не знаю, как именно работает ваше приложение. Сам Gearman использует постоянную очередь для записи в очередь и чтения из нее после перезапуска. Поэтому Gearman использует только одно соединение. Я считаю, что ваши задания будут запускать новое соединение mysql каждый раз, так как ваша работа, механик, не может помочь вам здесь. Вы должны исправить это в своем рабочем коде. http://php.net/manual/en/features.persistent-connections.php может помочь здесь. Для 3), для чего нужен механизм? Только один сервер и несколько клиентов из разных стран ... gearman справится с этим..4) - извините, не знаю :( –
@ dominik.mank 3) Я хочу запустить рабочих на нескольких серверах, а не на одном сервере. Возможно ли это с помощью Gearman? –
Пожалуйста, посмотрите изображение http://gearman.org/img/cluster.png от дистрибьютора http://gearman.org. Да, возможно, но я не могу сказать, как это делается для вашего приложения, поскольку это зависит от того, как вы используете gearman. –