簡體   English   中英

Apache ActiveMQ Artemis速度下降

[英]Apache ActiveMQ Artemis slowdown

在不堪重負的情況下,我們有時會發現發送JMS消息的速度有所下降。 有時發送一條簡單的消息最多可能需要30秒。 我們注意到的第一件事是總計9.5GB的巨大日志文件。 為什么會有這么多文件,並且有任何影響文件數量的設置。 根據文檔:

Apache ActiveMQ Artemis具有完善的文件垃圾收集算法,該算法可以確定是否進一步需要特定的日志文件-即是否已將其所有數據刪除到相同或其他文件中。 如果是這樣,可以回收和重新使用該文件

但是我們在journals文件夾中看到很多文件。 它會影響發送消息的性能嗎?

UPDATE

我們正在使用嵌入式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);

首先想到的是,由於journal-pool-files默認為-1journal-file-size默認為10485760字節(即10MB),代理必須在運行時隨着消息的累積創建和初始化10MB文件,並且一次創建這些文件后,日記將不會隨着郵件的使用而縮減為較小的文件集。 創建和初始化文件是一項昂貴的操作,因此您應該調整日志,以便預先創建足夠的文件來處理預期的消息量。 有關更多詳細信息,請參見期刊上Apache Artemis文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM