What is the difference in the underlying processing between the two testing models for fio testing io_uring? #1176
Unanswered
wwwwxxxxhhhh
asked this question in
Q&A
Replies: 1 comment 2 replies
-
The jobs are literally identical. |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi,
The performance results when I tested the first process model are as follows:
[global]
ioengine=io_uring
sqthread_poll=1
direct=1
time_based
thread
runtime=10
ramp_time=6
rw=write
bs=4k
numjobs=1
iodepth=64
[drive1]
filename=/dev/nvme1n1
[drive2]
filename=/dev/nvme1n2
result:
[root@localhost wxh_shell_copy]# fio io_uring.conf
drive1: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=io_uring, iodepth=64
drive2: (g=1): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=io_uring, iodepth=64
fio-3.29
Starting 2 threads
Jobs: 1 (f=1): [_(1),W(1)][76.7%][w=2377MiB/s][w=609k IOPS][eta 00m:10s]
drive1: (groupid=0, jobs=1): err= 0: pid=36207: Mon Jul 1 18:37:44 2024
write: IOPS=603k, BW=2355MiB/s (2470MB/s)(23.0GiB/10001msec); 0 zone resets
clat (usec): min=13, max=14154, avg=105.86, stdev=160.03
lat (usec): min=13, max=14154, avg=105.93, stdev=160.03
clat percentiles (usec):
| 1.00th=[ 29], 5.00th=[ 41], 10.00th=[ 48], 20.00th=[ 58],
| 30.00th=[ 68], 40.00th=[ 78], 50.00th=[ 90], 60.00th=[ 102],
| 70.00th=[ 118], 80.00th=[ 139], 90.00th=[ 176], 95.00th=[ 210],
| 99.00th=[ 297], 99.50th=[ 347], 99.90th=[ 1221], 99.95th=[ 2507],
| 99.99th=[ 8160]
bw ( MiB/s): min= 2315, max= 2414, per=100.00%, avg=2355.63, stdev=28.06, samples=20
iops : min=592868, max=618198, avg=603042.35, stdev=7182.08, samples=20
lat (usec) : 20=0.06%, 50=12.50%, 100=45.91%, 250=39.26%, 500=2.07%
lat (usec) : 750=0.06%, 1000=0.03%
lat (msec) : 2=0.05%, 4=0.02%, 10=0.03%, 20=0.01%
cpu : usr=99.86%, sys=0.00%, ctx=7, majf=0, minf=27
IO depths : 1=0.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=100.0%
submit : 0=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=0,6029983,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
drive2: (groupid=1, jobs=1): err= 0: pid=36211: Mon Jul 1 18:37:44 2024
write: IOPS=602k, BW=2353MiB/s (2467MB/s)(23.0GiB/10001msec); 0 zone resets
clat (usec): min=13, max=13803, avg=105.96, stdev=151.08
lat (usec): min=13, max=13803, avg=106.04, stdev=151.08
clat percentiles (usec):
| 1.00th=[ 29], 5.00th=[ 41], 10.00th=[ 48], 20.00th=[ 58],
| 30.00th=[ 68], 40.00th=[ 79], 50.00th=[ 90], 60.00th=[ 103],
| 70.00th=[ 119], 80.00th=[ 141], 90.00th=[ 176], 95.00th=[ 212],
| 99.00th=[ 297], 99.50th=[ 343], 99.90th=[ 971], 99.95th=[ 2089],
| 99.99th=[ 8094]
bw ( MiB/s): min= 2291, max= 2416, per=100.00%, avg=2353.31, stdev=40.23, samples=20
iops : min=586734, max=618750, avg=602447.30, stdev=10299.13, samples=20
lat (usec) : 20=0.06%, 50=12.59%, 100=45.51%, 250=39.47%, 500=2.20%
lat (usec) : 750=0.05%, 1000=0.02%
lat (msec) : 2=0.05%, 4=0.02%, 10=0.03%, 20=0.01%
cpu : usr=99.89%, sys=0.00%, ctx=3, majf=0, minf=0
IO depths : 1=0.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=100.0%
submit : 0=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=0,6023966,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
WRITE: bw=2355MiB/s (2470MB/s), 2355MiB/s-2355MiB/s (2470MB/s-2470MB/s), io=23.0GiB (24.7GB), run=10001-10001msec
Run status group 1 (all jobs):
WRITE: bw=2353MiB/s (2467MB/s), 2353MiB/s-2353MiB/s (2467MB/s-2467MB/s), io=23.0GiB (24.7GB), run=10001-10001msec
The performance results when I tested the second process model are as follows:
[global]
ioengine=io_uring
sqthread_poll=1
direct=1
time_based
group_reporting
bs=4k
rw=write
numjobs=1
iodepth=64
runtime=10
ramp_time=6
[job0]
filename=/dev/nvme1n1
name=drive1
[job1]
filename=/dev/nvme1n2
name=drive2
result:
[root@localhost wxh_shell_copy]# fio io_uring.conf
drive1: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=io_uring, iodepth=64
drive2: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=io_uring, iodepth=64
fio-3.29
Starting 2 processes
Jobs: 2 (f=2): [W(2)][100.0%][w=2294MiB/s][w=587k IOPS][eta 00m:00s]
drive1: (groupid=0, jobs=2): err= 0: pid=38746: Mon Jul 1 19:37:31 2024
write: IOPS=590k, BW=2304MiB/s (2416MB/s)(22.5GiB/10001msec); 0 zone resets
clat (usec): min=15, max=11816, avg=216.66, stdev=297.97
lat (usec): min=15, max=11816, avg=216.81, stdev=297.97
clat percentiles (usec):
| 1.00th=[ 47], 5.00th=[ 71], 10.00th=[ 93], 20.00th=[ 119],
| 30.00th=[ 139], 40.00th=[ 159], 50.00th=[ 182], 60.00th=[ 204],
| 70.00th=[ 235], 80.00th=[ 273], 90.00th=[ 347], 95.00th=[ 424],
| 99.00th=[ 635], 99.50th=[ 783], 99.90th=[ 5473], 99.95th=[ 7898],
| 99.99th=[ 9372]
bw ( MiB/s): min= 2244, max= 2349, per=100.00%, avg=2304.09, stdev=14.39, samples=40
iops : min=574480, max=601370, avg=589848.05, stdev=3684.25, samples=40
lat (usec) : 20=0.01%, 50=1.43%, 100=10.76%, 250=62.24%, 500=22.89%
lat (usec) : 750=2.14%, 1000=0.19%
lat (msec) : 2=0.14%, 4=0.08%, 10=0.14%, 20=0.01%
cpu : usr=99.81%, sys=0.00%, ctx=60, majf=0, minf=122
IO depths : 1=0.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=100.0%
submit : 0=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=0,5897888,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
WRITE: bw=2304MiB/s (2416MB/s), 2304MiB/s-2304MiB/s (2416MB/s-2416MB/s), io=22.5GiB (24.2GB), run=10001-10001msec
Disk stats (read/write):
nvme1n1: ios=0/0, merge=0/0, ticks=0/0, in_queue=0, util=100.00%
nvme1n2: ios=0/0, merge=0/0, ticks=0/0, in_queue=0, util=100.00%
My final idea: Is the first traffic mode to execute one server and then another, with only one disk working at a time, a serial process; The second traffic mode involves two disks working together simultaneously, which is a concurrent process;
Beta Was this translation helpful? Give feedback.
All reactions