Время от времени под большой нагрузкой мы можем наблюдать замедление при отправке сообщений JMS.Иногда отправка простого сообщения может занять до 30 секунд.Первое, что мы заметили, это огромный размер файлов журнала 9,5 ГБ.Почему файлов так много и есть ли параметры, которые влияют на количество файлов.Согласно документам:
Apache ActiveMQ Artemis имеет сложный алгоритм сбора мусора файлов, который может определить, нужен ли конкретный файл журнала больше - т.е. все ли его данные были удалены в тех же или других файлах.Если это так, файл можно восстановить и использовать повторно
Но мы видим много файлов в папке журналов.Может ли это повлиять на производительность отправки сообщений?
ОБНОВЛЕНИЕ
Мы используем встроенный JMS-сервер версии 2.3.0.Вот некоторые из установленных нами конфигов:
config.setPersistenceEnabled(true);
config.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName()));
config.getConnectorConfigurations().put("connector", new TransportConfiguration(InVMConnectorFactory.class.getName()));
AddressSettings addressSettings = new AddressSettings();
addressSettings.setAddressFullMessagePolicy(AddressFullMessagePolicy.PAGE);
addressSettings.setMaxSizeBytes(30 * 1024 * 1024L);
addressSettings.setPageSizeBytes(10 * 1024 * 1024L);
addressSettings.setPageCacheMaxSize(20);
config.getAddressesSettings().put("jms.queue.*", addressSettings);
config.setJournalBufferSize_AIO(819200);
config.setJournalBufferSize_NIO(819200);