Throughput issue contd. On Joyend Riak Smartmachine

Yousuf Fauzan yousuffauzan at gmail.com
Wed Jun 27 16:34:39 EDT 2012


I get this error when I increase the number of threads accessing a single
connection. Something related to getting unexpected number of bytes on the
connection.

On Wednesday, June 27, 2012, Reid Draper <reiddraper at gmail.com> wrote:
>
> On Jun 27, 2012, at 8:41 AM, Yousuf Fauzan wrote:
>
> So I created an array of clients using the following code
> Clients = [riak.RiakClient(e, port=8087,
transport_class=riak.RiakPbcTransport) for e in NODES]
>
> Sounds like you're bringing your concurrency back down to 3 (because you
have three nodes). Give
> something like 10 connections _per_ node a try, so 30 connections.
>
> After this I assigned each thread a particular id ranging from 0 to
Number of Nodes
> So each thread now communicates with a single node.
> Even after this, I am getting <100 writes/sec
>
> On Wed, Jun 27, 2012 at 5:35 PM, Yousuf Fauzan <yousuffauzan at gmail.com>
wrote:
>
> Oh! I think that may be an issue with my code then.
> Let me make some changes and get back to you.
>
> On Wed, Jun 27, 2012 at 5:25 PM, Reid Draper <reiddraper at gmail.com> wrote:
>
> On Jun 27, 2012, at 7:48 AM, Yousuf Fauzan wrote:
>
> This is great.
> I was loading data using Python. My code would spawn 10 threads and put
data in a queue. All threads would read data from this queue.
> However, all threads were hitting the same server/load balancer.
> I tried a different setup too. Where I spawned processes with each
process having its own queue. In this case too, all processes were hitting
the same server.
> I just now made a change to my code. So now I have 10 threads randomly
selecting a node and storing data in it.
> Again, I am getting around 50 writes/sec
>
> When the threads randomly pick a node, do they create a new connection to
it, or do they pull the connection from
> a pool? As you saw with the throughput difference between curl and
python, persistent connections make
> big difference.
>
> Could there be something wrong with the way I have written my loader
script?
>
> On Wed, Jun 27, 2012 at 5:10 PM, Russell Brown <russell.brown at mac.com>
wrote:
>
> On 27 Jun 2012, at 12:36, Yousuf Fauzan wrote:
>
> So I changed concurrency to 10 and put all the IPs of the nodes in basho
bench config.
> Throughput is now around 1500.
>
> I guess you can now try 5 or 15 concurrent workers and see which is
optimal for that set up to get a good feel for the sizing of any connection
pools for your application.
> You can also see how adding nodes and adding workers effects your results
to help you size the cluster you need for your expected usage.
> Cheers
> Russell
>
> On Wed, Jun 27, 2012 at 4:40 PM, Russell Brown <russell.brown at mac.com>
wrote:
>
> On 27 Jun 2012, at 12:09, Yousuf Fauzan wrote:
>
> I used examples/riakc_pb.config
> {mode, max}.
> {duration, 10}.
> {concurrent, 1}.
>
> Try upping this. On my local 3 node cluster with 8gb ram and an old,
cheap quad core per box I'd set concurrency to 10 workers.
>
> {driver, basho_bench_driver_riakc_pb}.
> {key_generator, {int_to_bin, {uniform_int, 10000}}}.
> {value_generator, {fixed_bin, 10000}}.
> {riakc_pb_ips, [{<IP of one of the nodes>}]}.
>
> I add all the IPs here, one entry per node.
>
> {riakc_pb_replies, 1}.
> {operations, [{get, 1}, {update, 1}]}.
>
> On Wed, Jun 27, 2012 at 4:37 PM, Russell Brown <russell.brown at mac.com>
wrote:
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20120628/52c14353/attachment.html>


More information about the riak-users mailing list