activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "tiansong xia (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (APLO-342) apollo becomes high heap memory after consuming large quantities of messages.what shall i do?
Date Sat, 14 Dec 2013 07:38:07 GMT

     [ https://issues.apache.org/jira/browse/APLO-342?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

tiansong xia updated APLO-342:
------------------------------

    Description: 
The consumer consumes  large quantities of messages by using transactional session,After a
period of time, java heap memory is high.
Consumer code like this:
Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
MessageConsumer receiver = connection.createConsumer("test topic");
receiver.setMessageListener(new MessageListener() {
//DB operations
session.commit();});

apollo.xml:
<queue id="com.zqgame.activeMQ.visitRecords" dlq="dlq.*" nak_limit="1" swap_range_size="2000"
auto_delete_after="0" />
<leveldb_store directory="${apollo.base}/data" read_threads="5" index_block_size="2048"
index_cache_size="134217728" index_write_buffer_size="2097152" />
<connector id="tcp-max" bind="tcp://0.0.0.0:61614" connection_limit="100" protocol="openwire"
send_buffer_size="4096" receive_buffer_size="4096"/>
About 30 connections(one consumer  per one connection) consume 500-600 message per second.
GC infomation:
num     #instances         #bytes  class name
----------------------------------------------
   1:        623730       24949200  org.apache.activemq.apollo.openwire.command.MessageId
   2:        311865       17464440  org.apache.activemq.apollo.openwire.command.MessageAck
   3:        653593       15686232  org.apache.activemq.apollo.broker.Broker$PeriodStat
   4:        624643       14991432  scala.collection.mutable.DefaultEntry
   5:         76311       10419944  <constMethodKlass>
   6:         76311       10389144  <methodKlass>
   7:        312041        9985312  scala.collection.mutable.ListBuffer
   8:        311865        9979680  org.apache.activemq.apollo.openwire.command.LocalTransactionId
   9:        311865        9979680  org.apache.activemq.apollo.openwire.OpenwireProtocolHandler$TransactionContext
  10:          7478        7530920  <constantPoolKlass>
  11:        312847        7508328  scala.collection.immutable.$colon$colon
  12:        311865        7484760  org.apache.activemq.apollo.openwire.OpenwireProtocolHandler$$anonfun$on_message_ack$1

JVM configuration:
-server -Xmx2G -Xms1G
apollo.xml and gc logs can see attachments.

  was:
The consumer consumes  large quantities of messages by using transactional session,After a
period of time, java heap memory is high.
Consumer code like this:
Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
MessageConsumer receiver = connection.createConsumer("test topic");
receiver.setMessageListener(new MessageListener() {
//DB operations
session.commit();});

apollo.xml:
<queue id="com.zqgame.activeMQ.visitRecords" dlq="dlq.*" nak_limit="1" swap_range_size="2000"
auto_delete_after="0" />
<leveldb_store directory="${apollo.base}/data" read_threads="5" index_block_size="2048"
index_cache_size="134217728" index_write_buffer_size="2097152" />
<connector id="tcp-max" bind="tcp://0.0.0.0:61614" connection_limit="100" protocol="openwire"
send_buffer_size="4096" receive_buffer_size="4096"/>
About 30 connections(one consumer  per one connection) consume 500-600 message per second.
GC infomation:
num     #instances         #bytes  class name
----------------------------------------------
   1:        623730       24949200  org.apache.activemq.apollo.openwire.command.MessageId
   2:        311865       17464440  org.apache.activemq.apollo.openwire.command.MessageAck
   3:        653593       15686232  org.apache.activemq.apollo.broker.Broker$PeriodStat
   4:        624643       14991432  scala.collection.mutable.DefaultEntry
   5:         76311       10419944  <constMethodKlass>
   6:         76311       10389144  <methodKlass>
   7:        312041        9985312  scala.collection.mutable.ListBuffer
   8:        311865        9979680  org.apache.activemq.apollo.openwire.command.LocalTransactionId
   9:        311865        9979680  org.apache.activemq.apollo.openwire.OpenwireProtocolHandler$TransactionContext
  10:          7478        7530920  <constantPoolKlass>
  11:        312847        7508328  scala.collection.immutable.$colon$colon
  12:        311865        7484760  org.apache.activemq.apollo.openwire.OpenwireProtocolHandler$$anonfun$on_message_ack$1

JVM configuration:
-server -Xmx2G -Xms1G
Configuration and gc logs can see attachments.


>  apollo becomes high heap memory after consuming large quantities of messages.what shall
i do? 
> -----------------------------------------------------------------------------------------------
>
>                 Key: APLO-342
>                 URL: https://issues.apache.org/jira/browse/APLO-342
>             Project: ActiveMQ Apollo
>          Issue Type: Question
>          Components: apollo-broker, apollo-openwire
>    Affects Versions: 1.6
>            Reporter: tiansong xia
>              Labels: test
>         Attachments: apollo.xml, gcloh.txt
>
>
> The consumer consumes  large quantities of messages by using transactional session,After
a period of time, java heap memory is high.
> Consumer code like this:
> Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
> MessageConsumer receiver = connection.createConsumer("test topic");
> receiver.setMessageListener(new MessageListener() {
> //DB operations
> session.commit();});
> apollo.xml:
> <queue id="com.zqgame.activeMQ.visitRecords" dlq="dlq.*" nak_limit="1" swap_range_size="2000"
auto_delete_after="0" />
> <leveldb_store directory="${apollo.base}/data" read_threads="5" index_block_size="2048"
index_cache_size="134217728" index_write_buffer_size="2097152" />
> <connector id="tcp-max" bind="tcp://0.0.0.0:61614" connection_limit="100" protocol="openwire"
send_buffer_size="4096" receive_buffer_size="4096"/>
> About 30 connections(one consumer  per one connection) consume 500-600 message per second.
> GC infomation:
> num     #instances         #bytes  class name
> ----------------------------------------------
>    1:        623730       24949200  org.apache.activemq.apollo.openwire.command.MessageId
>    2:        311865       17464440  org.apache.activemq.apollo.openwire.command.MessageAck
>    3:        653593       15686232  org.apache.activemq.apollo.broker.Broker$PeriodStat
>    4:        624643       14991432  scala.collection.mutable.DefaultEntry
>    5:         76311       10419944  <constMethodKlass>
>    6:         76311       10389144  <methodKlass>
>    7:        312041        9985312  scala.collection.mutable.ListBuffer
>    8:        311865        9979680  org.apache.activemq.apollo.openwire.command.LocalTransactionId
>    9:        311865        9979680  org.apache.activemq.apollo.openwire.OpenwireProtocolHandler$TransactionContext
>   10:          7478        7530920  <constantPoolKlass>
>   11:        312847        7508328  scala.collection.immutable.$colon$colon
>   12:        311865        7484760  org.apache.activemq.apollo.openwire.OpenwireProtocolHandler$$anonfun$on_message_ack$1
> JVM configuration:
> -server -Xmx2G -Xms1G
> apollo.xml and gc logs can see attachments.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Mime
View raw message