How to benchmark existing cluster with multi-get (API) operation

Hi Team,

I have few already created indexes(with data) on elastic and i want to get multi get performance on existing indexes.

I see we can define this with custom tracks by creating a track.json file. What should be the content of this file if I want to run 1000 mget requests per second. Each mget request contains 20 get requests.

Any help is appreciated !!

Hello,

You can find an example of a track with a single task in the docs here also showing how to limit the throughput of the executed query.

It is strongly recommended to familiarize yourself with the basic of the anatomy of the track. In your case since ES already has data you won't be interested in the indices, templates and corpora sections of the track.

Dimitris

Hi Dimitrios,

I gone through the custom runner, track anatomy documentation but still struggling to run esrally to benchmark my external es cluster.

Below are the failure logs:

2019-03-17 05:39:07,308 -not-actor-/PID:43624 esrally.rally INFO Rally version [1.0.4]
2019-03-17 05:39:07,308 -not-actor-/PID:43624 esrally.utils.net INFO Rally connects directly to the Internet (no proxy support).
2019-03-17 05:39:09,846 -not-actor-/PID:43624 esrally.rally INFO Detected a working Internet connection.
2019-03-17 05:39:09,875 -not-actor-/PID:43624 esrally.rally INFO Actor system already running locally? [False]
2019-03-17 05:39:09,875 -not-actor-/PID:43624 esrally.actor INFO Starting actor system with system base [multiprocTCPBase] and capabilities [{'coordinator': True, 'ip': '127.0.0.1', 'Convention Address.IPv4': '127.0.0.1:1900'}].
2019-03-17 05:39:10,138 -not-actor-/PID:43629 root INFO ++++ Actor System gen (3, 9) started, admin @ ActorAddr-(T|:1900)
2019-03-17 05:39:15,131 -not-actor-/PID:43624 esrally.actor ERROR Could not initialize internal actor system. Terminating.
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/esrally/actor.py", line 248, in bootstrap_actor_system
capabilities=capabilities)
File "/usr/local/lib/python3.7/site-packages/thespian/actors.py", line 638, in init
systemBase, capabilities, logDefs)
File "/usr/local/lib/python3.7/site-packages/thespian/actors.py", line 676, in _startupActorSys
systemBase = sbc(self, logDefs=logDefs)
File "/usr/local/lib/python3.7/site-packages/thespian/system/multiprocTCPBase.py", line 27, in init
super(ActorSystemBase, self).init(system, logDefs)
File "/usr/local/lib/python3.7/site-packages/thespian/system/multiprocCommon.py", line 85, in init
super(multiprocessCommon, self).init(system, logDefs)
File "/usr/local/lib/python3.7/site-packages/thespian/system/systemBase.py", line 329, in init
logDefs)
File "/usr/local/lib/python3.7/site-packages/thespian/system/multiprocCommon.py", line 114, in _startAdmin
'not a valid ActorSystem admin')
thespian.actors.InvalidActorAddress: ActorAddr-(T|:1900) is not a valid ActorSystem admin
2019-03-17 05:39:15,141 -not-actor-/PID:43624 esrally.rally ERROR A fatal error occurred while running subcommand [race].
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/esrally/rally.py", line 475, in dispatch_sub_command
race(cfg)
File "/usr/local/lib/python3.7/site-packages/esrally/rally.py", line 404, in race
with_actor_system(lambda c: racecontrol.run(c), cfg)
File "/usr/local/lib/python3.7/site-packages/esrally/rally.py", line 412, in with_actor_system
actors = actor.bootstrap_actor_system(try_join=already_running, prefer_local_only=not already_running)
File "/usr/local/lib/python3.7/site-packages/esrally/actor.py", line 248, in bootstrap_actor_system
capabilities=capabilities)
File "/usr/local/lib/python3.7/site-packages/thespian/actors.py", line 638, in init
systemBase, capabilities, logDefs)
File "/usr/local/lib/python3.7/site-packages/thespian/actors.py", line 676, in _startupActorSys
systemBase = sbc(self, logDefs=logDefs)
File "/usr/local/lib/python3.7/site-packages/thespian/system/multiprocTCPBase.py", line 27, in init
super(ActorSystemBase, self).init(system, logDefs)
File "/usr/local/lib/python3.7/site-packages/thespian/system/multiprocCommon.py", line 85, in init
super(multiprocessCommon, self).init(system, logDefs)
File "/usr/local/lib/python3.7/site-packages/thespian/system/systemBase.py", line 329, in init
logDefs)
File "/usr/local/lib/python3.7/site-packages/thespian/system/multiprocCommon.py", line 114, in _startAdmin
'not a valid ActorSystem admin')
thespian.actors.InvalidActorAddress: ActorAddr-(T|:1900) is not a valid ActorSystem admin

I am using below command
esrally --pipeline=benchmark-only --track-path=/home/ec2-user/.rally/mytrack --target-hosts="myhosts.json"

It fails with below error message:
[ERROR] Cannot race. Error in race control (ConnectionError((<urllib3.connection.HTTPConnection object at 0x7ff1a1c7f2b0>, 'Connection to 10.212.39.46 timed out. (connect timeout=60)')) caused by: ConnectTimeoutError((<urllib3.connection.HTTPConnection object at 0x7ff1a1c7f2b0>, 'Connection to 10.212.39.46 timed out. (connect timeout=60)')))

Hello,

Let's take this one step at a time.

Can you paste the content of myhosts.json?

Assuming Elasticsearch is using the default port 9200, can you try, from the host where Rally is running, to verify connectivity against Elasticsearch by trying something like nc -v 10.212.39.46:9200 (or whatever the port of ES is?)

Dimitris

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.