You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Jakub Scholz <ja...@scholz.cz> on 2013/10/24 12:47:37 UTC

C++ broker: AMQP 0.10 versus 1.0 performance

Hi,

I played with the latest trunk version of the Qpid C++ broker. I noticed
some interesting differences in the performance of the 0.10 and 1.0 clients.

When producing the messages, my C++ client (qpid.messaging) was able to
produce the messages (persistent message, 1024 bytes of message body, no
special application properties) using 0.10 with a speed of almost 9000
msg/s and almost 9MB/s. The same client with 1.0 was all the time faster
with speeds around 12000 msg/s and 12MB/s. That isn't so surprising - at
the end the protocols are very different on its own and the implementations
are different as well.

What was more interesting, was the performance of the message receivers
(which were always run after the producers, not in parallel) which seems to
be dependent on the protocol used to produce the messages. When I produced
the messages with AMQP 1.0 and received them with 1.0, I was reading at
slightly under 6900 msg/s and 6,9MB/s. But when the messages were produced
with 0.10, the speed increased to more than 9000 msg/s and 9MB/s. That is
quite a big difference in my opinion. When the messages are received with
0.10, the difference seems to be much smaller, but it seems to be there as
well. But this time, the messages are consumed faster when originally
produced with AMQP 1.0.

Is this something what can be explained by the internal processing of the
messages in the broker?

Thanks & Regards
Jakub

PS: The tests were done on my laptop. Therefore the performance values on
its own are quite bad.

Re: C++ broker: AMQP 0.10 versus 1.0 performance

Posted by Gordon Sim <gs...@redhat.com>.
On 11/07/2013 07:29 PM, Jakub Scholz wrote:
> Hi Gordon,
>
> It turned out, that my 1.0 receiver was actually using 0.10 and the other
> way around. So the results indeed are that the 1.0 receiver is faster for
> messages produced with 1.0. Sorry for the confusion.
>
> In which format are the message actually stored inside the broker? Is it
> some protocol neutral format or is it stored as received and converted
> later when delivered to the receiver?

They are stored in the format in which they were published, and then 
converted if needed when delivering to a receiver of a different protocol.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: C++ broker: AMQP 0.10 versus 1.0 performance

Posted by Jakub Scholz <ja...@scholz.cz>.
Hi Gordon,

It turned out, that my 1.0 receiver was actually using 0.10 and the other
way around. So the results indeed are that the 1.0 receiver is faster for
messages produced with 1.0. Sorry for the confusion.

In which format are the message actually stored inside the broker? Is it
some protocol neutral format or is it stored as received and converted
later when delivered to the receiver?

Thanks & Regards
Jakub


On Thu, Oct 24, 2013 at 1:51 PM, Gordon Sim <gs...@redhat.com> wrote:

> On 10/24/2013 11:47 AM, Jakub Scholz wrote:
>
>> I played with the latest trunk version of the Qpid C++ broker. I noticed
>> some interesting differences in the performance of the 0.10 and 1.0
>> clients.
>>
>> When producing the messages, my C++ client (qpid.messaging) was able to
>> produce the messages (persistent message, 1024 bytes of message body, no
>> special application properties) using 0.10 with a speed of almost 9000
>> msg/s and almost 9MB/s. The same client with 1.0 was all the time faster
>> with speeds around 12000 msg/s and 12MB/s. That isn't so surprising - at
>> the end the protocols are very different on its own and the
>> implementations
>> are different as well.
>>
>> What was more interesting, was the performance of the message receivers
>> (which were always run after the producers, not in parallel) which seems
>> to
>> be dependent on the protocol used to produce the messages. When I produced
>> the messages with AMQP 1.0 and received them with 1.0, I was reading at
>> slightly under 6900 msg/s and 6,9MB/s. But when the messages were produced
>> with 0.10, the speed increased to more than 9000 msg/s and 9MB/s.
>>
>
> I did a few quick tests and on my laptop I'm seeing the reverse. I.e.
> receive rate is slower in 1.0 if the messages being consumed were
> originally sent with 0-10 as compared with when the were sent with 1.0.
>
> Can you give a little more info on the test configuration? Does the queue
> used have any special config? Did you compile proton with a specific
> BUILD_TYPE? Are you using a test utility of your own or using
> qpid-send/qpid-receive?
>
>
>   That is
>> quite a big difference in my opinion. When the messages are received with
>> 0.10, the difference seems to be much smaller, but it seems to be there as
>> well. But this time, the messages are consumed faster when originally
>> produced with AMQP 1.0.
>>
>> Is this something what can be explained by the internal processing of the
>> messages in the broker?
>>
>> Thanks & Regards
>> Jakub
>>
>> PS: The tests were done on my laptop. Therefore the performance values on
>> its own are quite bad.
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
> For additional commands, e-mail: users-help@qpid.apache.org
>
>

Re: C++ broker: AMQP 0.10 versus 1.0 performance

Posted by Jakub Scholz <ja...@scholz.cz>.
Hi Gordon,

I'm using using a reject type queue with qpid.file_count 16, qpid.file_size
4096 and qpid.max_size 4294967296. The receiving client connects with SSL,
creates a receiver with capacity 1000 and consumes the messages in a while
cycle with acknowledging after every 100 messages. The message producer
connects without SSL, it generates messages with random characters and
sends them. I was attaching correlation IDs to the messages, but when I
tried to disable it, it doesn't change the situation.

The build of proton as well as qpid was done without any special options
... just cmake, make all and make install.

Thanks & Regards
Jakub

On Thu, Oct 24, 2013 at 1:51 PM, Gordon Sim <gs...@redhat.com> wrote:

> n you give a little more info on the test configuration? Does the queue
> used have any special config? Did you compile proton with a specific
> BUILD_TYPE? Are you using a test utility of your own or using
> qpid-send/qpid-re

Re: C++ broker: AMQP 0.10 versus 1.0 performance

Posted by Gordon Sim <gs...@redhat.com>.
On 10/24/2013 11:47 AM, Jakub Scholz wrote:
> I played with the latest trunk version of the Qpid C++ broker. I noticed
> some interesting differences in the performance of the 0.10 and 1.0 clients.
>
> When producing the messages, my C++ client (qpid.messaging) was able to
> produce the messages (persistent message, 1024 bytes of message body, no
> special application properties) using 0.10 with a speed of almost 9000
> msg/s and almost 9MB/s. The same client with 1.0 was all the time faster
> with speeds around 12000 msg/s and 12MB/s. That isn't so surprising - at
> the end the protocols are very different on its own and the implementations
> are different as well.
>
> What was more interesting, was the performance of the message receivers
> (which were always run after the producers, not in parallel) which seems to
> be dependent on the protocol used to produce the messages. When I produced
> the messages with AMQP 1.0 and received them with 1.0, I was reading at
> slightly under 6900 msg/s and 6,9MB/s. But when the messages were produced
> with 0.10, the speed increased to more than 9000 msg/s and 9MB/s.

I did a few quick tests and on my laptop I'm seeing the reverse. I.e. 
receive rate is slower in 1.0 if the messages being consumed were 
originally sent with 0-10 as compared with when the were sent with 1.0.

Can you give a little more info on the test configuration? Does the 
queue used have any special config? Did you compile proton with a 
specific BUILD_TYPE? Are you using a test utility of your own or using 
qpid-send/qpid-receive?

>  That is
> quite a big difference in my opinion. When the messages are received with
> 0.10, the difference seems to be much smaller, but it seems to be there as
> well. But this time, the messages are consumed faster when originally
> produced with AMQP 1.0.
>
> Is this something what can be explained by the internal processing of the
> messages in the broker?
>
> Thanks & Regards
> Jakub
>
> PS: The tests were done on my laptop. Therefore the performance values on
> its own are quite bad.
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org