qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Keith W <keith.w...@gmail.com>
Subject Re: Java Broker performance
Date Fri, 10 Nov 2017 13:51:42 GMT
Hi Tomas,

Nor can I reproduce any discernible difference in performance between
6.1.1 and the 7.0.0 RC with your Java code.  I have not tried the C++
yet.

Can you share with us:

* details of the hardware (including the storage) you are using for the test.
* the timings you seeing for your tests for both the 6.1.1 case and 7.0.0 RC
* any extra JVM options you are passing either client or broker side.
* size of java heap (client side) and heap and direct memory (broker)

Can I suggest that you collect vmstat type information for both runs
and compare?   My expectation is that CPU usage, disk I/O, and network
utilisation should be approximately equal between the two runs.

cheers, Keith


On 10 November 2017 at 11:12, Rob Godfrey <rob.j.godfrey@gmail.com> wrote:
> Hi Tomas,
>
> on the producing side I cannot reproduce this difference on my laptop
> (MacBook Pro, running OS X), and I'm unaware of any changes that were made
> to the broker that would cause such a significant slowdown (I haven't
> looked at consuming yet).
>
> I presume you are running these tests on the same hardware, with the same
> JMS client version, and such...?
>
> -- Rob
>
> On 10 November 2017 at 10:11, Rob Godfrey <rob.j.godfrey@gmail.com> wrote:
>
>> Thanks Tomas,
>>
>> we'll look into this
>>
>> -- Rob
>>
>> On 10 November 2017 at 09:59, Vavricka <vavricka.tomas@gmail.com> wrote:
>>
>>> C++ client code below
>>>
>>> #include <string>
>>> #include <iostream>
>>>
>>> #include <proton/connection_options.hpp>
>>> #include <proton/container.hpp>
>>> #include <proton/default_container.hpp>
>>> #include <proton/message.hpp>
>>> #include <proton/message_id.hpp>
>>> #include <proton/messaging_handler.hpp>
>>> #include <proton/thread_safe.hpp>
>>> #include <proton/tracker.hpp>
>>> #include <proton/value.hpp>
>>>
>>> class Broadcaster : public proton::messaging_handler
>>> {
>>>
>>>     private:
>>>
>>>         std::string _account;
>>>         std::string _password;
>>>         std::string _host;
>>>         unsigned int _port;
>>>         unsigned int _count;
>>>         unsigned int _size;
>>>         unsigned int _sent;
>>>         unsigned int _confirmed;
>>>         std::string _exchange;
>>>         std::string _routingKey;
>>>         proton::sender _sender;
>>>
>>>     public:
>>>
>>>     explicit Broadcaster(const std::string &account,
>>>                          const std::string &password,
>>>                          const std::string &host,
>>>                          unsigned int port,
>>>                          const std::string &exchange,
>>>                          const std::string &routingKey,
>>>                          unsigned int count,
>>>                          unsigned int size)
>>>         : _account(account)
>>>         , _password(password)
>>>         , _host(host)
>>>         , _port(port)
>>>         , _count(count)
>>>         , _size(size)
>>>         , _sent(0)
>>>         , _confirmed(0)
>>>         , _exchange(exchange)
>>>         , _routingKey(routingKey)
>>>     {
>>>     }
>>>
>>>     void on_container_start(proton::container &c)
>>>     {
>>>         proton::connection_options connectionOptions;
>>>         connectionOptions.sasl_allow_insecure_mechs(true);
>>>         connectionOptions.sasl_allowed_mechs("PLAIN");
>>>         c.client_connection_options(connectionOptions);
>>>
>>>         std::string url = "amqp://" + _account + ":" + _password + "@" +
>>> _host + ":" + std::to_string(_port) + "/" + _exchange;
>>>
>>>         _sender = c.open_sender(url);
>>>     }
>>>
>>>     void on_sendable(proton::sender &s)
>>>     {
>>>         while (s.credit() && _sent < _count)
>>>         {
>>>             proton::message msg;
>>>             msg.id(_sent + 1);
>>>             msg.subject(_routingKey);
>>>             msg.body(std::string(_size, '*'));
>>>             msg.durable(true);
>>>             s.send(msg);
>>>             _sent++;
>>>             std::cout << "-I sent " << _sent << " of " <<
_count <<
>>> std::endl;
>>>         }
>>>     }
>>>
>>>     void on_tracker_accept(proton::tracker &t)
>>>     {
>>>         _confirmed++;
>>>         if (_confirmed == _count)
>>>         {
>>>             std::cout << "-I- All messages (" << _confirmed <<
")
>>> confirmed"
>>> << std::endl;
>>>             t.connection().close();
>>>         }
>>>     }
>>>
>>>     void on_transport_close(proton::transport &t)
>>>     {
>>>         _sent = _confirmed;
>>>     }
>>>
>>>     void run()
>>>     {
>>>         try
>>>         {
>>>             proton::default_container(*this).run();
>>>         }
>>>         catch (const std::exception &error)
>>>         {
>>>             std::cerr << "-E- Caught exception: " << error.what()
<<
>>> std::endl;
>>>             throw error;
>>>         }
>>>     }
>>> };
>>>
>>> int main(void)
>>> {
>>>     Broadcaster("C7",
>>>                 "C7",
>>>                 "pc1wj611",
>>>                 20001,
>>>                 "broadcast",
>>>                 "broadcast.C7_CashTransaction",
>>>                 1000,
>>>                 1024).run();
>>>     return 0;
>>> }
>>>
>>>
>>>
>>>
>>> --
>>> Sent from: http://qpid.2158936.n2.nabble.com/Apache-Qpid-users-f2158936
>>> .html
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
>>> For additional commands, e-mail: users-help@qpid.apache.org
>>>
>>>
>>

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


Mime
View raw message