I feel the need to point out that with just a key or two you're probably only talking to 3/5 of the machines. for a single key adding extra nodes won't make it faster. (As I understand it)
- Peace Dave On Fri, Dec 20, 2013 at 3:35 AM, Russell Brown <russell.br...@me.com> wrote: > > 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 >> > > >> > > >> > >> > >> >> > > > _______________________________________________ > riak-users mailing list > riak-users@lists.basho.com > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com > _______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com