Description
ioSTOR is storage service from Zettagrid that can be used in Virtual Data Center (VDC) or Virtual Private Server (VPS) service. ioSTOR provides tiered performance level based on IOPS, so you can match your infrastructure cost with performance and workload needs.
In this article, we will guide you through testing the performance of ioSTOR service in Zettagrid.
Requirement
- A Linux instance (VM) in VDC (you may use VPS albeit with some limitation)
- fio (flexible I/O) tool
- Additional Virtual Disk with specific ioSTOR service you want to test
Example
1. How to order ioSTOR-500 service in VDC
2. Deploy an Ubuntu Server 20.04 VM from template in VDC
3. Adding another disk with ioSTOR-500
4. Installing fio in Ubuntu
sudo apt-get update && sudo apt-get install fio -y
Using fio
Below are a few example of commands to test IOPS performance with fio
Random reads
sudo fio --filename=device name --direct=1 --rw=randread --bs=16k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --readonly
Random read/writes
sudo fio --filename=device name --direct=1 --rw=randrw --bs=16k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1
Sequential reads
sudo fio --filename=device name --direct=1 --rw=read --bs=16k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --readonly
Sequential read/writes
sudo fio --filename=device name --direct=1 --rw=readwrite --bs=16k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1
Example
Random read test on additional disk (unused)
sudo fio --filename=/dev/sdb --direct=1 --rw=randread --bs=16k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --readonly
Random read/writes test on main disk (for VPS that can not have additional disks, adjust --size flag with available free space in disk)
sudo fio --filename=/home/ubuntu/iotest --size=2GB --direct=1 --rw=randrw --bs=16k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1
Interpreting fio’s output
A sample from fio’s output
Few lines in the header are description of the parameter used in the test (bs=block size, rw=mode pengujian), fio’s version in use, and number of processes spawned.
The most inportant part that contain the information you seek is here:
read: IOPS=508, BW=8132KiB/s (8327kB/s)(478MiB/60128msec)
Here fio provide you with the summary of the test result:
- read: IOPS=508 --> read IOPS (average) throughout the test is 508
- BW=8132KiB/s --> read throughput (average) is 8132KiB/S or about 8 MiB/s
The rest of the output shows detail statistic of the test result.
Conclusion
Testing ioSTOR performance using a VM inside a VDC will make your job so easy. With VDC technology from VMware, disks can be added on-the-fly to an active VM. You may also change storage policy of any disks without having to reboot the VM. That way you can test multiple ioSTOR type concurrently or changing ioSTOR type faster. For example, you can add multiple disks with different ioSTOR/storage policy on a VM.
Fio application also helps you with that. As the name, fio is very flexible and can be used in shell scripting to automate your work.For example, you can schedule fio test to run on certain times throughout the day by calling fio from cron jobs.