2017-02-13 5 views
0

У меня есть ActiveMQ, который соединяет через stomp порт с 20000+ серверами одновременно, чтобы публиковать и потреблять сообщения. Сервер activemq работает с памятью 8CPU и 32G. Я назначил максимальную память JVM как -Xmx16384m. Но все же, когда все серверы связаны с этим ActiveMQ, сервер становится загруженным, а использование виртуальной памяти около 21G и использования процессора около 500 раз.activemq tuning для 20000 нитей

Не уверен, использует ли JVM этот или любой другой процесс, задействованный в этом activemq, и пробовал с множеством настроек и никаких улучшений.

ответ

0

Возможно, вам стоит пересмотреть архитектуру. Если вам действительно нужно много серверов, вы можете попробовать неблокирующую шину обмена сообщениями, например ActiveMQ Artemis. Я не знаю точно, сколько клиентов STOMP будет поддерживать под ваши настройки, но стоит попробовать. Сохранение большого количества клиентов отдельными потоками будет иметь огромный объем памяти, и я думаю, что Артемис справится с такими случаями лучше. Однако не уверен в STOMP.