scripts/nvmf performance: fix config param and connection error

Fixed the following:
1) Missing python paramiko module in package dependecies.
2) Paramiko connection error: TypeError: missing_host_key() missing 1 required positional argument: 'key'
The set_missing_host_key_policy call should take a class instance AutoAddPolicy(), instead of the class name.
3) JSON config file defines "rdma_ips" instead of "nic_ips"
4) Added result file location in the documentation
5) Added env variable for PYTHONPATH to documentation
6) config.json changed default rw to randrw instead of read

Signed-off-by: John Kariuki <John.K.Kariuki@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/455285 (master)

(cherry picked from commit d601374387)
Change-Id: I96624e2912131f62254c684a6c03a53a7f806cde
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/457286
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: John Kariuki <John.K.Kariuki@intel.com>
Reviewed-by: Liang Yan <liang.z.yan@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
John Kariuki 2019-05-21 08:54:51 -07:00 committed by Darek Stojaczyk
parent 59401ab51b
commit 366297805e
4 changed files with 23 additions and 5 deletions

View File

@ -61,3 +61,18 @@ Fio job parameters.
- run_time: time (in seconds) to run workload
- ramp_time: time (in seconds) to run workload before statistics are gathered
- run_num: how many times to run given workload in loop
# Running Test
Before running the test script use the setup.sh script to bind the devices you want to
use in the test to the VFIO/UIO driver.
Run the script on the NVMe-oF target system:
cd spdk
sudo PYTHONPATH=$PYTHONPATH:$PWD/scripts scripts/perf/nvmf/run_nvmf.py
The script uses another spdk script (scripts/rpc.py) so we pass the path to rpc.py by setting the Python path
as a runtime environment parameter.
# Test Results
When the test completes, you will find a csv file (nvmf_results.csv) containing the results in the target node
directory /tmp/results.

View File

@ -5,7 +5,7 @@
"transport": "transport_type"
},
"target": {
"rdma_ips": ["192.0.1.1", "192.0.2.1"],
"nic_ips": ["192.0.1.1", "192.0.2.1"],
"mode": "spdk",
"use_null_block": false,
"nvmet_dir": "/path/to/nvmetcli",
@ -14,19 +14,19 @@
},
"initiator1": {
"ip": "10.0.0.1",
"rdma_ips": ["192.0.1.1"],
"nic_ips": ["192.0.1.1"],
"mode": "spdk",
"nvmecli_dir": "/path/to/nvmecli"
},
"initiator2": {
"ip": "10.0.0.2",
"rdma_ips": ["192.0.2.1"],
"nic_ips": ["192.0.2.1"],
"mode": "spdk"
},
"fio": {
"bs": ["4k"],
"qd": [128],
"rw": ["read"],
"rw": ["randrw"],
"rwmixread": 100,
"run_time": 5,
"ramp_time": 1,

View File

@ -159,6 +159,7 @@ class Target(Server):
for row in rows:
with open(os.path.join(results_dir, csv_file), "a") as fh:
fh.write(row + "\n")
self.log_print("You can find the test results in the file %s" % os.path.join(results_dir, csv_file))
def measure_sar(self, results_dir, sar_file_name):
self.log_print("Waiting %d delay before measuring SAR stats" % self.sar_delay)
@ -186,7 +187,7 @@ class Initiator(Server):
self.nvmecli_bin = "nvme" # Use system-wide nvme-cli
self.ssh_connection = paramiko.SSHClient()
self.ssh_connection.set_missing_host_key_policy(paramiko.AutoAddPolicy)
self.ssh_connection.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.ssh_connection.connect(self.ip, username=self.username, password=self.password)
self.remote_call("sudo rm -rf %s/nvmf_perf" % self.spdk_dir)
self.remote_call("mkdir -p %s" % self.spdk_dir)

View File

@ -92,6 +92,8 @@ elif [ -f /etc/debian_version ]; then
"Note: Some SPDK CLI dependencies could not be installed."
# Additional dependencies for ISA-L used in compression
apt-get install -y autoconf automake libtool help2man
# Additional dependecies for nvmf performance test script
apt-get install -y python3-paramiko
elif [ -f /etc/SuSE-release ] || [ -f /etc/SUSE-brand ]; then
zypper install -y gcc gcc-c++ make cunit-devel libaio-devel libopenssl-devel \
git-core lcov python-base python-pycodestyle libuuid-devel sg3_utils pciutils