[
https://issues.apache.org/activemq/browse/AMQ-1137?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38799
]
Helmut Janknecht commented on AMQ-1137:
---------------------------------------
Ok I found out the difference between these kernel versions, it is the value of
this TCP parameter "Appropriate Byte Count" (ABC) defined in RFC3465.
In 2.6.16 and .17 default is set to 1, in 2.6.18 to 0.
So try
{noformat}
sysctl net.ipv4.tcp_abc=0
{noformat}
This may increase overall messaging performance when using transaction or
sending acknowledgements.
> Transactional, non persistent queing very slow under Linux
> ----------------------------------------------------------
>
> Key: AMQ-1137
> URL: https://issues.apache.org/activemq/browse/AMQ-1137
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 4.1.0
> Reporter: Helmut Janknecht
>
> h2. USE CASE
> # Take 4.1.0 Release from
> http://people.apache.org/repo/m2-incubating-repository/org/apache/activemq/apache-activemq/4.1.0-incubator/apache-activemq-4.1.0-incubator.zip
> and unzip on a Linux box (SuSE 10.1, Kernel 2.6.16 with 2GB RAM and
> Xeon(TM) CPU 2.80GHz
> # Edit {{conf/activemq.xml}} and disable ssl and stomp transport
> # Start broker: {{apache-activemq-4.1.0-incubator/bin> java -jar run.jar}}
> # Edit {{example/build.xml}} and set max=1000 (send 1000 messages to queue)
> and *transacted=true*
> # Run producer: {{ant producer}}
> h2. Results
> {code:title=broker logfile}
> ACTIVEMQ_HOME: /home/janknecht/tmp/apache-activemq-4.1.0-incubator
> Loading message broker from: xbean:activemq.xml
> INFO BrokerService - ActiveMQ 4.1.0-incubator JMS Message
> Broker (localhost) is starting
> INFO BrokerService - For help or more information please
> see: http://incubator.apache.org/activemq/
> INFO ManagementContext - JMX consoles can connect to
> service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
> INFO JDBCPersistenceAdapter - Database driver recognized:
> [apache_derby_embedded_jdbc_driver]
> INFO DefaultDatabaseLocker - Attempting to acquire the exclusive
> lock to become the Master broker
> INFO DefaultDatabaseLocker - Becoming the master on dataSource:
> [EMAIL PROTECTED]
> INFO JournalPersistenceAdapter - Journal Recovery Started from: Active
> Journal: using 5 x 20.0 Megs at:
> /home/janknecht/tmp/apache-activemq-4.1.0-incubator/activemq-data/journal
> INFO JournalPersistenceAdapter - Journal Recovered: 0 message(s) in
> transactions recovered.
> INFO TransportServerThreadSupport - Listening for connections at:
> tcp://acxlin.wu.ssn:61616
> INFO TransportConnector - Connector openwire Started
> INFO NetworkConnector - Network Connector default-nc Started
> INFO BrokerService - ActiveMQ JMS Message Broker
> (localhost, ID:acxlin.wu.ssn-60609-1169619821670-1:0) started
> {code}
> {code:title=producer output}
> producer:
> [echo] Running producer against server at $url = tcp://localhost:61616
> for subject $subject = TEST.FOO
> [java] Connecting to URL: tcp://localhost:61616
> [java] Publishing a Message with size 1000 to queue: TEST.FOO
> [java] Using non-persistent messages
> [java] Sleeping between publish 0 ms
> [java] Sending message: Message: 0 sent at: Wed Jan 24 07:28:14 CET 2007
> ...
> [java] Sending message: Message: 1 sent at: Wed Jan 24 07:28:14 CET 2007
> ...
> [java] Sending message: Message: 2 sent at: Wed Jan 24 07:28:14 CET 2007
> ...
> [java] Sending message: Message: 3 sent at: Wed Jan 24 07:28:15 CET 2007
> ...
> [java] Sending message: Message: 4 sent at: Wed Jan 24 07:28:15 CET 2007
> ...
> [java] Sending message: Message: 5 sent at: Wed Jan 24 07:28:15 CET 2007
> ...
> ...
> [java] Sending message: Message: 998 sent at: Wed Jan 24 07:28:55 CET
> 2007...
> [java] Sending message: Message: 999 sent at: Wed Jan 24 07:28:55 CET
> 2007...
> [java] Done.
> [java] connection {
> [java] session {
> [java] messageCount{ count: 1000 unit: count startTime:
> 1169620094893 lastSampleTime: 1169620135606 description: Number of messages
> exchanged }
> [java] messageRateTime{ count: 1000 maxTime: 126 minTime: 4
> totalTime: 40688 averageTime: 40.688 averageTimeExMinMax: 40.63927855711423
> averagePerSecond: 24.57727093983484 averagePerSecondExMinMax:
> 24.606736032348735 unit: millis startTime: 1169620094893 lastSampleTime:
> 1169620135606 description: Time taken to process a message (thoughtput rate) }
> [java] pendingMessageCount{ count: 0 unit: count startTime:
> 1169620094893 lastSampleTime: 1169620094893 description: Number of pending
> messages }
> [java] expiredMessageCount{ count: 0 unit: count startTime:
> 1169620094893 lastSampleTime: 1169620094893 description: Number of expired
> messages }
> [java] messageWaitTime{ count: 0 maxTime: 0 minTime: 0 totalTime: 0
> averageTime: 0.0 averageTimeExMinMax: 0.0 averagePerSecond: 0.0
> averagePerSecondExMinMax: 0.0 unit: millis startTime: 1169620094893
> lastSampleTime: 1169620094893 description: Time spent by a message before
> being delivered }
> [java] durableSubscriptionCount{ count: 0 unit: count startTime:
> 1169620094893 lastSampleTime: 1169620094893 description: The number of
> durable subscriptions }
> [java] producers {
> [java] producer queue://TEST.FOO {
> [java] messageCount{ count: 1000 unit: count startTime:
> 1169620094918 lastSampleTime: 1169620135606 description: Number of messages
> processed }
> [java] messageRateTime{ count: 1000 maxTime: 126 minTime: 4
> totalTime: 40688 averageTime: 40.688 averageTimeExMinMax: 40.63927855711423
> averagePerSecond: 24.57727093983484 averagePerSecondExMinMax:
> 24.606736032348735 unit: millis startTime: 1169620094918 lastSampleTime:
> 1169620135606 description: Time taken to process a message (thoughtput rate) }
> [java] pendingMessageCount{ count: 0 unit: count startTime:
> 1169620094918 lastSampleTime: 1169620094918 description: Number of pending
> messages }
> [java] messageRateTime{ count: 1000 maxTime: 126 minTime: 4
> totalTime: 40688 averageTime: 40.688 averageTimeExMinMax: 40.63927855711423
> averagePerSecond: 24.57727093983484 averagePerSecondExMinMax:
> 24.606736032348735 unit: millis startTime: 1169620094918 lastSampleTime:
> 1169620135606 description: Time taken to process a message (thoughtput rate) }
> [java] expiredMessageCount{ count: 0 unit: count startTime:
> 1169620094918 lastSampleTime: 1169620094918 description: Number of expired
> messages }
> [java] messageWaitTime{ count: 0 maxTime: 0 minTime: 0
> totalTime: 0 averageTime: 0.0 averageTimeExMinMax: 0.0 averagePerSecond: 0.0
> averagePerSecondExMinMax: 0.0 unit: millis startTime: 1169620094918
> lastSampleTime: 1169620094918 description: Time spent by a message before
> being delivered }
> [java] }
> [java] }
> [java] consumers {
> [java] }
> [java] }
> [java] }
> {code}
> As you can see very bad performace, ot took about 40s to send this 1000
> transacted queue messages :-(
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.