On 20 Dec 2013, at 10:18, Georgio Pandarez <georgiopanda...@gmail.com> wrote:

> Hi Russell,
> 
> Thanks for the prompt response.
> 
> > Also realised I never asked, what version of Riak are you running
> 
> 1.4.2
> 
> > It doesn’t look like Riak is doing a whole lot at this point
> 
> So is it normal for the cpu to spin?

Again, I’ll check with colleagues later, I don’t see that behaviour locally, I 
have a suspicion this is the stats gathering process running in the background. 
Though you can’t turn it off, you can give it a really long interval and see if 
that helps, You can do this by adding

    {stat_cache_ttl, $SomeTimeInSeconds}

to the riak_core section in your app.config

> 
> > . I’ll speak with my colleagues when they get online for some more 
> > guidance, as I’m not sure what numbers you should expect for a single key. 
> > Are you going to try with 100s, 1000s, millions of keys (which is far more 
> > common usage)? What is the use case that requires you get the same key 
> > thousands of times a second?
> 
> Yes, I will be trying with many keys, I just wanted to see if riak is 
> suitable for this application. 
> 
> What kind of rps should I be expecting on a typical 5 node cluster of a read 
> heavy workload? I know there are so many variables, but should each node be 
> generating 1000 rps?

Yes, you should be able to achieve 1000s ops/sec per node. We have a tuning 
section in our docs that is worth a read 
http://docs.basho.com/riak/1.4.0/cookbooks/Linux-Performance-Tuning/

Hopefully I can get some more concrete answers for you later in the day.

Cheers

Russell

> 
> 
> 
> 
> On Fri, Dec 20, 2013 at 9:08 PM, Russell Brown <russell.br...@me.com> wrote:
> Thanks Georgio,
> 
> I just noticed that we went off list so I’m copying riak-users back in. I 
> always forget to reply-all.
> 
> Also realised I never asked, what version of Riak are you running (looks 
> 1.4.something?)
> 
> On 20 Dec 2013, at 10:01, Georgio Pandarez <georgiopanda...@gmail.com> wrote:
> 
> > Hi Russell,
> >
> > > What about the drives? Actually, with a single Key you’re probably not 
> > > touching the drives at all.
> >
> > Just a single SATA disk. I've only got two keys and am testing a single key 
> > at a time.
> >
> > > So is there a single HTTP connection? Many? How many? Does it use a pool 
> > > of connections that are kept alive, establishing an HTTP connection is 
> > > pricey. Is all the load going to one node? Spread across all 5?
> >
> > I am using haproxy to load balance requests against the 5 servers. I am 
> > using keepalive connections and have tested from 5 connections to 200 
> > connections. After a certain point increasing the connections only 
> > increases latency.
> >
> 
> That makes sense, there is usually a sweetspot for number of connections. All 
> your clients are contending for the same key.
> 
> > Looking at the servers, riak is using most of the CPU, I'm not sure what it 
> > is doing.
> >
> > running riak-admin top from one of the servers shows the below, I've tried 
> > disabling riak_kv_stat but it still hangs around:
> 
> You can’t disable stats in riak 1.4.x which is looks like your using (from 
> the inclusion of side job in the etop output)
> 
> >
> >  Load:  cpu       114               Memory:  total       90204    binary    
> >     672
> >         procs     670                        processes    8103    code      
> >   10535
> >         runq        1                        atom          493    ets       
> >   30233
> >
> > Pid                 Name or Initial Func         Time       Reds     Memory 
> >       MsgQ Current Function
> > -------------------------------------------------------------------------------------------------------------------------------
> > <6210.577.0>        proc_lib:init_p/5             '-'    7415450      34688 
> >          0 gen_fsm:loop/7
> > <6210.2977.0>       proc_lib:init_p/5             '-'     761452       2880 
> >          1 prim_file:drv_get_response/1
> > <6210.304.0>        riak_kv_stat_sj_1             '-'     371484       3856 
> >          0 gen_server:loop/6
> > <6210.305.0>        riak_kv_stat_sj_2             '-'     363239       3856 
> >          0 gen_server:loop/6
> > <6210.1054.19>      proc_lib:init_p/5             '-'     125656      34328 
> >          0 mochiweb_http:request/3
> > <6210.753.19>       proc_lib:init_p/5             '-'     125588      34328 
> >          0 mochiweb_http:request/3
> > <6210.1041.19>      proc_lib:init_p/5             '-'     125588      34328 
> >          0 mochiweb_http:request/3
> > <6210.1052.19>      proc_lib:init_p/5             '-'     125588      34328 
> >          0 mochiweb_http:request/3
> > <6210.664.19>       proc_lib:init_p/5             '-'     124041      21552 
> >          0 riak_client:wait_for_reqid/3
> > <6210.694.19>       proc_lib:init_p/5             '-'     124041      21552 
> >          0 riak_client:wait_for_reqid/3
> 
> It doesn’t look like Riak is doing a whole lot at this point. I’ll speak with 
> my colleagues when they get online for some more guidance, as I’m not sure 
> what numbers you should expect for a single key. Are you going to try with 
> 100s, 1000s, millions of keys (which is far more common usage)? What is the 
> use case that requires you get the same key thousands of times a second?
> 
> Cheers
> 
> Russell
> 
> >
> >
> >
> > On Fri, Dec 20, 2013 at 8:51 PM, Russell Brown <russell.br...@me.com> wrote:
> > Hi Georgio,
> >
> > Thanks for getting back to me.
> >
> > On 20 Dec 2013, at 09:23, Georgio Pandarez <georgiopanda...@gmail.com> 
> > wrote:
> >
> > > Hi Russell,
> > >
> > > Thanks for your reply.
> > >
> > > > Are you getting 2400 reqs a second against  a single key?
> > >
> > > Yes.
> >
> > Ah, OK. Well that is OKish for a single key, though I’ve seen better.
> >
> > >
> > > > What backend are you using?
> > >
> > > bitcask
> > >
> > > > What is the spec of the machines?
> > >
> > > dual core, 4gig, physical, 100mbit between the machines
> >
> > What about the drives? Actually, with a single Key you’re probably not 
> > touching the drives at all.
> >
> > >
> > > > Is this perf figure against cs or riak?
> > >
> > > This perf figure is against riak. I was originally trying riak-cs and 
> > > wasn't getting satisfactory performance, so I decided to try directly 
> > > against riak.
> > >
> > > > Have you tried the PB driver?
> > >
> > > No
> >
> > Please do. It should be faster.
> >
> > >
> > > > What is the ring size?
> > >
> > > 64
> > >
> > > > What “requests” are you doing? Are they serial in a loop using CURL or 
> > > > parallel using basho_bench?
> > >
> > > GET requests using a http performance testing tool like httpress
> >
> > So is there a single HTTP connection? Many? How many? Does it use a pool of 
> > connections that are kept alive, establishing an HTPP connection is pricey. 
> > Is all the load going to one node? Spread across all 5?
> >
> > >
> > > > Something is wrong, because on my local 3 desktop cluster I can get 
> > > > well over 5000ops/sec.
> > >
> > > Yes, it seems that way. I've been reading docs and watching video's for 
> > > the past two weeks, so performance definitely isn't up to expectations.
> >
> > Well, usually you spread you’re load over many keys, so get greater 
> > performance from parallelism, you also often have many clients, again, 
> > better performance from parallelism.
> >
> > Let me know some more about the HTTP element as I’ve asked above, please.
> >
> > Cheers
> >
> > Russell
> >
> > >
> > >
> > > On Fri, Dec 20, 2013 at 7:44 PM, Russell Brown <russell.br...@me.com> 
> > > wrote:
> > > Hi Georgio,
> > >
> > > With data that small I doubt there is a difference in perf.
> > >
> > > Can I get some more info, please?
> > >
> > > Are you getting 2400 reqs a second against  a single key? What backend 
> > > are you using? What is the spec of the machines? Are they real or on some 
> > > cloud? Network?
> > >
> > > Is this perf figure against cs or riak? Have you tried the PB driver? 
> > > What is the ring size? What “requests” are you doing? Are they serial in 
> > > a loop using CURL or parallel using basho_bench?
> > >
> > > Something is wrong, because on my local 3 desktop cluster I can get well 
> > > over 5000ops/sec.
> > >
> > > If you can provide more info then we can probably help you get 
> > > performance closer to your expectations.
> > >
> > > Cheers
> > >
> > > Russell
> > >
> > >
> > > On 20 Dec 2013, at 08:33, Georgio Pandarez <georgiopanda...@gmail.com> 
> > > wrote:
> > >
> > > > Hi Guys,
> > > >
> > > > I'm still evaluating riak & riak-cs.
> > > >
> > > > On my five node cluster, with riak only, I am only able to do 2400 
> > > > requests per second. I have two keys, one a one byte key, and another a 
> > > > 4kb key, the performance doesn't change against either.
> > > >
> > > > Is this the best that I can expect to get from this, I don't consider 
> > > > 2400 rps to be significantly high for 5 machines. I'm testing using the 
> > > > http interface.
> > > > _______________________________________________
> > > > riak-users mailing list
> > > > riak-users@lists.basho.com
> > > > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
> > >
> > >
> >
> >
> 
> 

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to