-
Notifications
You must be signed in to change notification settings - Fork 236
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
benchmark tool for Riak KV #1863
Comments
The There is a alternative branch which is used for testing the same thing via the HTTP API. |
Thanks for your reply, I installed rebar3, but when running make all command, it is giving error
Please let me know if I am missing anything |
ok i resolved that error by updating Makefile and replacing rebar with rebar3 |
i have installed erlang 25 and rebar3 but getting this error when running make all
|
Try with OTP 22. Run That should generate a basho_bench executable in _build/default/bin which can then be used like this Sorry, the readme instructions are lagging behind the changes made. There's a bit of fiddling normally required to get this working. The generation of charts using R is probably broken, you may need to do your own work on the csv outputs to chart any results. |
Thankyou for the response, it is working with otp 22,now probably one last doubt, I have three riak nodes riak0.local, riak1.local and riak2.local |
hey @martinsumner could you please help me out, I am just about to finish my load test |
For basho_bench you have a configuration file which you can set-up to control your test. You can pick one of the examples as a starting point, a good starting point might be the riakc_nhs_general.config which is what is used for riak release testing. Here is an annotated version of that config file to explain what it means:
The first few elements define the throughput for the test.
So in this case you would increase the throughput by increasing the
|
This isn't easy. There's a lot going on in this particular config file to generate various test scenarios. this particular test scenario runs in an upload mode until a certain threshold is reached, and then switches to a load which has more GETs than PUTs once the database is of sufficient size to be worth testing. There are much simpler test configs available - https://github.com/basho/basho_bench/blob/mas-nhs-httponly/examples/riakc_pb.config is a good example. The simpler test scenarios tend to give unrealistic tests - e.g. most of the test runs with against a small database, with lots of not_found responses, and there's no testing of 2i etc. |
econnrefused normally means either there is no lustener on the TCP port, or some sort of firewall is blocking it. On the riak node 172.22.0.212 if you do I'm not sure why riakc_pb.config would work though. this has an info message just before it connects - may be worth confirming the details being reported in the console log when it hits this log: https://github.com/basho/basho_bench/blob/develop-3.0/src/basho_bench_driver_riakc_pb.erl#L130 |
yes i got to know that riak node is getting down again and again, when checked the logs, I found this error
I increased the limit and fs.file-max but still getting this error |
This looks like a standard ulimit issue. Guidance for setting ulimit here |
Thankyou @martinsumner , i updated the limits by following the doc you shared, but still the service is dropping again and again. So I removed the ring and decided to test with a single node itself(where I am not facing issues), I used the
can you please help me in generating the graph for this test |
I can't help I'm afraid. Personally, I load results into a spreadsheet and then manipulate and chart them there. This made it a easier (for me) to chart comparisons between different runs of basho_bench etc and tidy up the presentation. I'm not sufficiently familiar with R/ggplot to troubleshoot this code. |
can you please explain me the way you are doing it, I mean which file you are uploading to spreadheet, it will be really helpful for me |
Hi @martinsumner , actually i am new to basho_bench so my questions might sound silly to you. I am thankful for your help so far. I want to test the risk performance running on a node with 256GB memory and 72 cores CPU, i want to generate load and see if it breaks, |
At some stage you may hit limits on the basho_bench node itself, or with the network connection. The When testing Riak, the crucial questions are:
There are then tuning options in basho_bench to reflect this. the answers to these questions will have a huge impact on the throughput (in terms of transactions per second) that can be achieved. Then you need to setup Riak to accept the load. How many nodes do you expect to have in your Riak cluster - normally Riak in production will run on at least six nodes, so it doesn't make sense to test for any less than that. Then there are things to consider such as what anti-entropy configuration to use, and which Riak backend you intend to use (this makes a big difference for performance). The ring_size also needs to be set correctly to reflect the size of the cluster (you generally need to make sure that ring_size > total count of vcpu in the cluster). There's not much point running the test without a certain investment in observability. So generally you need to make sure all the riak logs, the riak metrics and your general OS metrics are being indexed in something splunk-like so that you can then determine where limits are and tune accordingly. Doing worthwhile database testing needs quite a bit of preparation. |
Then the test must not be starting. Is there anything in the crash.log? |
This is the crash.log output . Also the tests is failing when using
|
Assuming 172.22.0.214:8087 is the correct IP/port for a Riak instance, there's no real clues here as to why it is being disconnected, especiall given things work fine with the you may be able to run the erlang client from
|
Hi, can someone please suggest me some benchmarking tool for Riak to generate and perform load test on the machine.
The text was updated successfully, but these errors were encountered: