Я работаю на Gearman версии 1.1.12.
у меня есть 2 PHP работники, у которых запрашивается частота (около 60 раз в минуту).
Проверяя статистику, я вижу, что нынешнего количества работников вполне достаточно для выполнения работы. (Задания, ожидающие в очереди для каждого работника, в большинстве случаев равны 0).
Проблема в том, что я заметил потребление памяти.
При каждом запросе к работнику использование памяти для этого работника постоянно увеличивается, это составляет до 25 МБ памяти в минуту (60 секунд) для каждого работника.
Например:
И так далее.
Я сбрасываю все переменные, которые объявлены в этой функции перед возвращением результатов, но кажется, что это также не помогает ..
Это нормальное поведение?
Если это так, как я должен справиться с этим? Убить этих рабочих частотой с помощью какого-нибудь сценария и создать новый?
Если я правильно понимаю, это нормальное поведение, когда работники потребляют память, потому что хранят ее и не освобождают до тех пор, пока рабочий процесс не будет перезапущен.
Больше: https://groups.google.com/forum/#!topic/gearman/gtkIZ0yFypY
Также я думаю, что с этим можно легко справиться, используя GearmanManager, который способен перезапускать работников через определенный промежуток времени.
Других решений пока нет …