Many storage performance testers are familiar with vdbench, and wish to use it to test Hyper-Converged (HCI) performance. To accurately performance test HCI you need to deploy workloads on all HCI nodes. However, deploying multiple VMs and coordinating vdbench can be tricky, so with X-ray we provide an easy way to run vdbench at scale. Here’s how to do it.
Step by step instructions to add vdbench to X-Ray.
- Download vdbench from the Oracle site
- Get the vdbench x-ray test scenario from github https://github.com/garyjlittle/xray.git
- (You can clone the repository to a laptop, then upload to your X-Ray server)
- Rename the zip file downloaded from Oracle to vdbench.zip The X-ray scenerio relies on the zip file having exactly this name.
- Go to your X-ray server and upload the vdbench.zip file and the vdbench x-ray scenario files to the x-ray server.
- Ensure that VMs created on the cluster will have access to the internet, they will need to be able to install a JVM in order to run vdbench.
Then simply run the vdbench workload against your HCI appliance just like you would with the build-in X-ray tests. The result should look something like this
Alternatively use the built-in Grafana display
Once you have the basics working, feel free to write whatever vdbench file you desire, and have X-ray provision multiple Linux vms then deploy, run the and display results of the vdbench workload for you.
2 comments on “How to run vdbench benchmark on any HCI with X-Ray”
Hello,
I can not operating vdbench of xray.
I checked below log to xray. Could you help me?
Xray stop FILL : Prefilling of step.
=================
2022-02-16 06:20:26,439Z WARNING rpc_util.py:305 RPC failed. Retrying after ’16’ seconds (17 of 20 attempts)
2022-02-16 06:20:42,459Z ERROR rpc_util.py:254 Exception in RPC request
Traceback (most recent call last):
File “/usr/lib/python2.7/site-packages/curie/rpc_util.py”, line 243, in _send_rpc_sync
timeout=timeout_secs)
File “/usr/lib/python2.7/site-packages/requests/api.py”, line 116, in post
return request(‘post’, url, data=data, json=json, **kwargs)
File “/usr/lib/python2.7/site-packages/requests/api.py”, line 60, in request
return session.request(method=method, url=url, **kwargs)
File “/usr/lib/python2.7/site-packages/requests/sessions.py”, line 533, in request
resp = self.send(prep, **send_kwargs)
File “/usr/lib/python2.7/site-packages/requests/sessions.py”, line 646, in send
r = adapter.send(request, **kwargs)
File “/usr/lib/python2.7/site-packages/requests/adapters.py”, line 516, in send
raise ConnectionError(e, request=request)
==================
Can you post your test.yml file? Sometimes this error comes from using large disks and the prefill stage times out.