[ 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: org.apache.derby.jdbc.EmbeddedDataSource@14627a
> 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.
|