-
Notifications
You must be signed in to change notification settings - Fork 490
Open
Description
Hi,
We're seeing a large performance degradation between Kernel 5.15 and 6.17. We ran the experiment below on GCP, and found a worsening in 25% of IOPs and 2x latency. This experiment was done without altering the kernel. We did bisect the kernel and found the offending commit was caec5ebe77f97d948dcf46f07d622bda7f1f6dfd.
Server
The server is a c4-highmem-96 machine with 8TB hyperdisk balanced with 160K provisioned IOPS and 2,400 MB/s provisioned throughput
Clients
The clients are c4-highmem-2 machines
knfsd
The server was created with the following export:
arikrinberg@nfs-server:~$ cat /etc/exports
/srv/nfs/shared_data 10.128.0.0/20(rw,sync,no_subtree_check)
No other changes were done.
Test
FIO conf
arikrinberg@vm-ubuntu-2025-c4:~$ cat fio.conf
[global]
bs=4096
direct=0
buffer_compress_percentage=50
ioengine=io_uring
fallocate=truncate
group_reporting=1
time_based=1
runtime=60
ramp_time=0
name=test-job
file_service_type=random
filesize=2097152
allow_file_create=0
nrfiles=512
directory=/mnt/nfs/dataset
exitall_on_error=1
disk_util=0
[job0.0]
iodepth=100
readwrite=randread
filename_format=$filenum
Ubuntu 2022 (5.15.0)
arikrinberg@vm-ubuntu-2022-c4:~$ fio fio.conf
job0.0: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=io_uring, iodepth=100
fio-3.28
Starting 1 process
Jobs: 1 (f=512): [r(1)][100.0%][r=326MiB/s][r=83.5k IOPS][eta 00m:00s]
job0.0: (groupid=0, jobs=1): err= 0: pid=3623: Sun Nov 16 11:07:15 2025
read: IOPS=82.9k, BW=324MiB/s (339MB/s)(19.0GiB/60001msec)
slat (nsec): min=1466, max=1578.9k, avg=8946.09, stdev=12993.26
clat (usec): min=3, max=46716, avg=1369.05, stdev=483.16
lat (usec): min=4, max=46723, avg=1378.11, stdev=484.89
clat percentiles (usec):
| 1.00th=[ 570], 5.00th=[ 791], 10.00th=[ 898], 20.00th=[ 1020],
| 30.00th=[ 1123], 40.00th=[ 1205], 50.00th=[ 1319], 60.00th=[ 1434],
| 70.00th=[ 1565], 80.00th=[ 1713], 90.00th=[ 1909], 95.00th=[ 2057],
| 99.00th=[ 2376], 99.50th=[ 2606], 99.90th=[ 3458], 99.95th=[ 4293],
| 99.99th=[10814]
bw ( KiB/s): min=255680, max=396016, per=100.00%, avg=331705.13, stdev=23227.88, samples=119
iops : min=63920, max=99004, avg=82926.24, stdev=5806.97, samples=119
lat (usec) : 4=0.01%, 10=0.01%, 20=0.01%, 50=0.01%, 100=0.01%
lat (usec) : 250=0.01%, 500=0.46%, 750=3.38%, 1000=14.20%
lat (msec) : 2=75.30%, 4=6.60%, 10=0.05%, 20=0.01%, 50=0.01%
cpu : usr=6.25%, sys=49.65%, ctx=1596770, majf=0, minf=12
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.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.0%, >=64=0.1%
issued rwts: total=4971523,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=128
Run status group 0 (all jobs):
READ: bw=324MiB/s (339MB/s), 324MiB/s-324MiB/s (339MB/s-339MB/s), io=19.0GiB (20.4GB), run=60001-60001msec
Ubuntu 2025 (6.17.0)
arikrinberg@vm-ubuntu-2025-c4:~$ fio fio.conf
job0.0: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=io_uring, iodepth=100
fio-3.39
Starting 1 process
Jobs: 1 (f=512): [r(1)][100.0%][r=239MiB/s][r=61.3k IOPS][eta 00m:00s]
job0.0: (groupid=0, jobs=1): err= 0: pid=2783: Sun Nov 16 11:06:11 2025
read: IOPS=60.4k, BW=236MiB/s (247MB/s)(13.8GiB/60002msec)
slat (nsec): min=311, max=849646, avg=1683.90, stdev=7973.42
clat (usec): min=102, max=31129, avg=1653.31, stdev=266.12
lat (usec): min=107, max=31130, avg=1654.99, stdev=265.85
clat percentiles (usec):
| 1.00th=[ 1139], 5.00th=[ 1450], 10.00th=[ 1500], 20.00th=[ 1549],
| 30.00th=[ 1582], 40.00th=[ 1598], 50.00th=[ 1631], 60.00th=[ 1663],
| 70.00th=[ 1696], 80.00th=[ 1745], 90.00th=[ 1827], 95.00th=[ 1926],
| 99.00th=[ 2278], 99.50th=[ 2540], 99.90th=[ 3130], 99.95th=[ 3359],
| 99.99th=[ 9503]
bw ( KiB/s): min=192600, max=253600, per=100.00%, avg=241583.00, stdev=7070.59, samples=119
iops : min=48150, max=63400, avg=60395.75, stdev=1767.65, samples=119
lat (usec) : 250=0.01%, 500=0.08%, 750=0.18%, 1000=0.36%
lat (msec) : 2=96.38%, 4=2.96%, 10=0.02%, 20=0.01%, 50=0.01%
cpu : usr=5.61%, sys=16.19%, ctx=2294269, majf=0, minf=9
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.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.0%, >=64=0.1%
issued rwts: total=3621379,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=100
Run status group 0 (all jobs):
READ: bw=236MiB/s (247MB/s), 236MiB/s-236MiB/s (247MB/s-247MB/s), io=13.8GiB (14.8GB), run=60002-60002msec
Metadata
Metadata
Assignees
Labels
No labels