[ 
https://issues.apache.org/jira/browse/ARTEMIS-4087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17631528#comment-17631528
 ] 

Marcel Jansen commented on ARTEMIS-4087:
----------------------------------------

Hi Justin,

Hereby the broker.xml:
{code:java}
<configuration xmlns=\"urn:activemq\" 
xmlns:xi=\"http://www.w3.org/2001/XInclude\"; 
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"; 
xsi:schemaLocation=\"urn:activemq /schema/artemis-configuration.xsd\">
          <core xmlns=\"urn:activemq:core\" 
xsi:schemaLocation=\"urn:activemq:core \">
            
            <persistence-enabled>true</persistence-enabled>
            <journal-type>ASYNCIO</journal-type>
            <paging-directory>data/paging</paging-directory>
            <bindings-directory>data/bindings</bindings-directory>
            <journal-directory>data/journal</journal-directory>
            
<large-messages-directory>data/large-messages</large-messages-directory>
            <critical-analyzer-timeout>600000</critical-analyzer-timeout>
            
            <security-enabled>false</security-enabled>
            
            <jmx-management-enabled>true</jmx-management-enabled>
            
            <address-settings>
              <!-- if you define auto-create on certain queues, management has 
to be auto-create -->
              <address-setting match=\"activemq.management#\">
                <dead-letter-address>DLQ</dead-letter-address>
                <expiry-address>ExpiryQueue</expiry-address>
                <redelivery-delay>0</redelivery-delay>
                <!-- with -1 only the global-max-size is in use for limiting -->
                <max-size-bytes>-1</max-size-bytes>
                
<message-counter-history-day-limit>10</message-counter-history-day-limit>
                <address-full-policy>PAGE</address-full-policy>
                <auto-create-queues>true</auto-create-queues>
                <auto-create-addresses>true</auto-create-addresses>
                <auto-delete-queues>true</auto-delete-queues>
                <auto-delete-addresses>true</auto-delete-addresses>
              </address-setting>
              <!--default for catch all-->
              <address-setting match=\"#\">
                <dead-letter-address>DLQ</dead-letter-address>
                <expiry-address>ExpiryQueue</expiry-address>
                <redelivery-delay>0</redelivery-delay>
                <!-- with -1 only the global-max-size is in use for limiting -->
                <max-size-bytes>4000000000</max-size-bytes>
                <max-size-messages>1000000</max-size-messages>
                
<message-counter-history-day-limit>10</message-counter-history-day-limit>
                <address-full-policy>PAGE</address-full-policy>
                <auto-create-queues>true</auto-create-queues>
                <auto-create-addresses>true</auto-create-addresses>
                <auto-delete-queues>true</auto-delete-queues>
                <auto-delete-addresses>true</auto-delete-addresses>
              </address-setting>
            </address-settings>
            <addresses>
              <address name=\"DLQ\">
                <anycast>
                  <queue name=\"DLQ\"/>
                </anycast>
              </address>
              <address name=\"ExpiryQueue\">
                <anycast>
                  <queue name=\"ExpiryQueue\"/>
                </anycast>
              </address>
            </addresses>
            
            <connectors>
              <connector 
name=\"netty-connector\">tcp://0.0.0.0:61617</connector>
            </connectors>
            
            <connection-ttl-override>300000</connection-ttl-override>
            
            <!-- Acceptors -->
            <acceptors>
              <acceptor 
name=\"netty-ssl-acceptor\">tcp://0.0.0.0:61617?sslEnabled=true;keyStorePath=/var/lib/artemis-instance/ssl/broker.ks;keyStorePassword=${keyStorePassword};trustStorePath=/var/lib/artemis-instance/ssl/client.ts;trustStorePassword=${trustStorePassword};needClientAuth=true;enabledProtocols=TLSv1,TLSv1.1,TLSv1.2</acceptor>
            </acceptors>
            
          </core>
          
        </configuration> {code}
Paging also occurs with max-size-bytes=-1 and without having configured 
max-size-messages.

 

I have seen this behaviour with both versions 2.23.1 and 2.25.0. Currently I am 
using version 2.25.0.

With checking the filesystem I thought I confirmed that Artemis is paging as 
/var/lib/artemis-instance/data/paging is the configured paging directory.

> Artemis starts paging before reaching configured limits
> -------------------------------------------------------
>
>                 Key: ARTEMIS-4087
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4087
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 2.23.1, 2.25.0
>            Reporter: Marcel Jansen
>            Priority: Major
>
> As documented ([Paging · ActiveMQ 
> Artemis|https://activemq.apache.org/components/artemis/documentation/2.0.0/paging.html])
>  should Artemis start paging when reaching one of the following limits:
> Per queue:
>  * max-size-bytes (default: -1, thus unlimited)
>  * max-size-messages (default: -1, thus unlimited)
> Global:
>  * global-max-size (default: 1/2 of max JVM memory size)
>  * global-max-messages (default: -1, thus unlimited)
> In my understanding should Artemis (if not configured otherwise) start paging 
> when the global size reaches half the size of the JVM max memory.
> I have tested with both the above settings and specific limits. The JVM has a 
> max memory size of 30gb.
> The following log is from a broker with a queue that has approximately 10.000 
> messages of 3kb in size (at peak moments this increases to above 300.000 
> messages) . Despite of the configured limits the log tells me it starts 
> paging:
> {code:java}
> 2022-11-08 14:58:52,282 INFO [org.apache.activemq.artemis.core.server] 
> AMQ222038: Starting paging on address 'redacted.queue.name'; size=0 bytes (0 
> messages); maxSize=4000000000 bytes (1000000 messages); globalSize=0 bytes (0 
> messages); globalMaxSize=16106127360 bytes (-1 messages);{code}
> This is confirmed when I inspect the filesystem:
> {code:java}
> /var/lib/artemis-instance/data/paging$ du -h
> 8.0K    ./62bde078-a373-11ec-931e-7ab5b265b3a6
> 161M    ./3bd3774b-a32e-11ec-931e-7ab5b265b3a6
> 8.0K    ./93ad59a3-df28-11ec-b0a5-8a1ef8f4c99e
> 161M    .{code}
> {code:java}
> /var/lib/artemis-instance/data/paging$ ls -l  
> 3bd3774b-a32e-11ec-931e-7ab5b265b3a6/
> total 179160
> -rw-rw-r-- 1 artemis artemis 10483423 Nov  8 14:51 000033795.page
> -rw-rw-r-- 1 artemis artemis 10484549 Nov  8 14:53 000033797.page
> -rw-rw-r-- 1 artemis artemis 10483487 Nov  8 14:57 000033802.page
> -rw-r--r-- 1 artemis artemis 10481506 Nov  8 15:04 000033804.page
> -rw-r--r-- 1 artemis artemis 10483474 Nov  8 15:04 000033805.page
> -rw-r--r-- 1 artemis artemis 10484783 Nov  8 15:07 000033806.page
> -rw-r--r-- 1 artemis artemis 10485629 Nov  8 15:12 000033807.page
> -rw-r--r-- 1 artemis artemis 10483845 Nov  8 15:13 000033808.page
> -rw-r--r-- 1 artemis artemis 10484295 Nov  8 15:14 000033809.page
> -rw-r--r-- 1 artemis artemis 10483287 Nov  8 15:15 000033810.page
> -rw-r--r-- 1 artemis artemis 10482534 Nov  8 15:15 000033811.page
> -rw-r--r-- 1 artemis artemis 10483602 Nov  8 15:16 000033812.page
> -rw-r--r-- 1 artemis artemis 10483332 Nov  8 15:16 000033813.page
> -rw-r--r-- 1 artemis artemis 10484324 Nov  8 15:16 000033814.page
> -rw-r--r-- 1 artemis artemis 10484248 Nov  8 15:17 000033815.page
> -rw-r--r-- 1 artemis artemis 10484052 Nov  8 15:17 000033816.page
> -rw-r--r-- 1 artemis artemis 10484635 Nov  8 15:18 000033817.page
> -rw-r--r-- 1 artemis artemis  5128056 Nov  8 15:18 000033818.page
> -rw-rw-r-- 1 artemis artemis       46 Mar 14  2022 address.txt {code}
> Am I missing something in my configuration or is this a bug?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to