FIO support variable iodepth 97/1297/2
authorhoujingwen <houjingwen@huawei.com>
Tue, 25 Aug 2015 08:40:22 +0000 (16:40 +0800)
committerJörgen Karlsson <jorgen.w.karlsson@ericsson.com>
Wed, 26 Aug 2015 09:40:44 +0000 (09:40 +0000)
FIO storage performance varification support variable iodepth.

JIRA: YARDSTICK-119

Change-Id: Ib6af55c5fbcaa7727a7541b13053b5e4ce8d3203
Signed-off-by: houjingwen <houjingwen@huawei.com>
samples/fio.yaml
yardstick/benchmark/scenarios/storage/fio.py

index f70912a..be82227 100644 (file)
@@ -5,9 +5,10 @@
 # For this sample just like running the command below on the test vm and 
 # getting benchmark info back to the yardstick.
 #
-# sudo fio -filename=/home/ec2-user/data.raw -bs=4k -rw=write -ramp_time=10 \
-#          -runtime=60 -name=yardstick-fio -ioengine=libaio -direct=1 \
-#          -group_reporting -numjobs=1 -time_based --output=yardstick-fio.log
+# sudo fio -filename=/home/ec2-user/data.raw -bs=4k -ipdepth=1 -rw=write \
+#          -ramp_time=10 -runtime=60 -name=yardstick-fio -ioengine=libaio \
+#          -direct=1 -group_reporting -numjobs=1 -time_based \
+#          --output=yardstick-fio.log
 #
 # When the above fio command done, the yardstick-fio.log file will contain 
 # information like below and the benchmark script will take iops, throughput 
@@ -52,13 +53,14 @@ scenarios:
   options:
     filename: /home/ec2-user/data.raw
     bs: 4k
+    iodepth: 1
     rw: write
     ramp_time: 10
   host: fio.demo
   runner:
     type: Duration
     duration: 60
-    interval: 60
+    interval: 1
 
 context:
   name: demo
index a39af06..4eaf879 100644 (file)
@@ -29,6 +29,10 @@ class Fio(base.Scenario):
         type:    int
         unit:    bytes
         default: 4k
+    iodepth - number of iobuffers to keep in flight
+        type:    int
+        unit:    na
+        default: 1
     rw - type of io pattern [read, write, randwrite, randread, rw, randrw]
         type:    string
         unit:    na
@@ -79,6 +83,7 @@ class Fio(base.Scenario):
         options = args["options"]
         filename = options.get("filename", "/home/ec2-user/data.raw")
         bs = options.get("bs", "4k")
+        iodepth = options.get("iodepth", "1")
         rw = options.get("rw", "write")
         ramp_time = options.get("ramp_time", 20)
         name = "yardstick-fio"
@@ -93,10 +98,11 @@ class Fio(base.Scenario):
         else:
             runtime = 30
 
-        args = "-filename=%s -bs=%s -rw=%s -ramp_time=%s -runtime=%s -name=%s" \
-            % (filename, bs, rw, ramp_time, runtime, name)
+        args = "-filename=%s -bs=%s -iodepth=%s -rw=%s -ramp_time=%s " \
+               "-runtime=%s -name=%s" \
+               % (filename, bs, iodepth, rw, ramp_time, runtime, name)
         cmd = "sudo bash fio.sh %s %s %s" \
-            % (filename, args, default_args)
+              % (filename, args, default_args)
         LOG.debug("Executing command: %s", cmd)
         status, stdout, stderr = self.client.execute(cmd)
         if status:
@@ -127,6 +133,7 @@ def _test():
     options = {
         "filename": "/home/ec2-user/data.raw",
         "bs": "4k",
+        "iodepth": "1",
         "rw": "write",
         "ramp_time": 10,
     }