Skip to content

script: add dcache pool benchmark command#8043

Merged
mksahakyan merged 1 commit into11.2from
fio-into-pool-11.2
Mar 18, 2026
Merged

script: add dcache pool benchmark command#8043
mksahakyan merged 1 commit into11.2from
fio-into-pool-11.2

Conversation

@kofemann
Copy link
Member

Motivation:
Often admins want to know the expected I/O rates that a pool can provide. The desired benchmarks can be hart to configure. This, it makes sense to provide a 'good starting point' with dcache.

Modification:
update dcache command to provide pool benchmark command that will benchmark all configure pools in the layout file that that host. Optionally, a specific directory can be used.

Result:
simple test to benchmark pools filesystem

$ dcache pool benchmark

  Running fio benchmark for pool pool_write@dCacheDomain.

seqwrite: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
seqread: (g=1): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
randread: (g=2): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
concurrent_write: (g=3): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
...
concurrent_randread: (g=4): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
...
fio-3.40
Starting 48 threads and 3 processes
Jobs: 1 (f=1): [_(36),V(1),_(14)][100.0%][r=556MiB/s][r=142k IOPS][eta 00m:00s]
seqwrite: (groupid=0, jobs=1): err= 0: pid=156310: Fri Mar  6 11:57:47 2026

....

Run status group 0 (all jobs):
  WRITE: bw=636MiB/s (667MB/s), 636MiB/s-636MiB/s (667MB/s-667MB/s), io=10.0GiB (10.7GB), run=16110-16110msec

Run status group 1 (all jobs):
   READ: bw=628MiB/s (659MB/s), 628MiB/s-628MiB/s (659MB/s-659MB/s), io=10.0GiB (10.7GB), run=16298-16298msec

Run status group 2 (all jobs):
   READ: bw=41.0MiB/s (43.0MB/s), 41.0MiB/s-41.0MiB/s (43.0MB/s-43.0MB/s), io=10.0GiB (10.7GB), run=249909-249909msec

Run status group 3 (all jobs):
  WRITE: bw=1738MiB/s (1822MB/s), 1738MiB/s-1738MiB/s (1822MB/s-1822MB/s), io=240GiB (258GB), run=141418-141418msec

Run status group 4 (all jobs):
   READ: bw=1845MiB/s (1935MB/s), 1845MiB/s-1845MiB/s (1935MB/s-1935MB/s), io=240GiB (258GB), run=133205-133205msec

Acked-by: Marina Sahakyan
Target: master
Require-book: no
Require-notes: yes
(cherry picked from commit 2e61583)

Motivation:
Often admins want to know the expected I/O rates that a pool can
provide. The desired benchmarks can be hart to configure. This, it makes
sense to provide a 'good starting point' with dcache.

Modification:
update `dcache` command to provide `pool benchmark` command that will
benchmark all configure pools in the layout file that that host.
Optionally, a specific directory can be used.

Result:
simple test to benchmark pools filesystem

```
$ dcache pool benchmark

  Running fio benchmark for pool pool_write@dCacheDomain.

seqwrite: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
seqread: (g=1): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
randread: (g=2): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
concurrent_write: (g=3): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
...
concurrent_randread: (g=4): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
...
fio-3.40
Starting 48 threads and 3 processes
Jobs: 1 (f=1): [_(36),V(1),_(14)][100.0%][r=556MiB/s][r=142k IOPS][eta 00m:00s]
seqwrite: (groupid=0, jobs=1): err= 0: pid=156310: Fri Mar  6 11:57:47 2026

....

Run status group 0 (all jobs):
  WRITE: bw=636MiB/s (667MB/s), 636MiB/s-636MiB/s (667MB/s-667MB/s), io=10.0GiB (10.7GB), run=16110-16110msec

Run status group 1 (all jobs):
   READ: bw=628MiB/s (659MB/s), 628MiB/s-628MiB/s (659MB/s-659MB/s), io=10.0GiB (10.7GB), run=16298-16298msec

Run status group 2 (all jobs):
   READ: bw=41.0MiB/s (43.0MB/s), 41.0MiB/s-41.0MiB/s (43.0MB/s-43.0MB/s), io=10.0GiB (10.7GB), run=249909-249909msec

Run status group 3 (all jobs):
  WRITE: bw=1738MiB/s (1822MB/s), 1738MiB/s-1738MiB/s (1822MB/s-1822MB/s), io=240GiB (258GB), run=141418-141418msec

Run status group 4 (all jobs):
   READ: bw=1845MiB/s (1935MB/s), 1845MiB/s-1845MiB/s (1935MB/s-1935MB/s), io=240GiB (258GB), run=133205-133205msec

```

Acked-by: Marina Sahakyan
Target: master
Require-book: no
Require-notes: yes
(cherry picked from commit 2e61583)
Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
@mksahakyan mksahakyan merged commit f6b0184 into 11.2 Mar 18, 2026
1 of 3 checks passed
@mksahakyan mksahakyan deleted the fio-into-pool-11.2 branch March 18, 2026 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants