Hazelcast Mancenter увеличивает использование процессора
Я имею:
a) 1 сервер (4 В, 8 ГБ), на котором запущен узел Hazelcast,
б) 1 сервер (4vcpu, 8GB), на котором запущен Hazelcast Mancenter на Tomcat 7.
Оба сервера находятся в одной локальной сети.
Я протестировал 2 сценария:
Сценарий 1) Я начал а) и б). Данные не переданы. Использование процессора на а) было 0-10%.
Сценарий 2) Я начал а) и б). Я передал большую часть данных для обработки в) и ждал, пока он не закончится (2 часа). Когда не осталось данных для обработки, я проверил использование процессора на a) - это было 30-110% (даже через 8 часов). Когда я остановил mancenter на b), процессор на a) опустился до 0-10%. После повторного запуска mancenter он вырос до 30-110%.
Я думаю, что использование процессора на а) после 1) и 2) должно быть одинаковым.
Я проанализировал jvm и заметил, что поток с именем MC.State.Sender был неактивен в сценарии 1 и активен в сценарии 2. Может ли это истощать процессор? Можно ли это ограничить с помощью конфигурации?
Спасибо заранее за любую помощь.
Вот дампы потоков из visualvm (я также могу предоставить снимки профилировщика процессора):
дамп сценария1
дамп сценария2
1 ответ
Я заметил проблему при использовании Hazelcast 3.4 и Mancenter 3.4.1. После обновления библиотеки Hazelcast до 3.4.1 я не смог повторить проблему.
Целую неделю я проводил разные тесты, и проблема больше не возникала.
Решение состоит в том, чтобы сохранить mancenter и Hazelcast lib в одной и той же версии.