Обновился с ядра 6.8.12-11-pve до последней версии 6.14, доступной сегодня 6.14.5-1-bpo12. Скорость I/O диска упала с read: IOPS=123k до read: IOPS=37.3k. Перезагрузился в ядро 6.8.12-11-pve, и IOPS снова 123k — что-то не так с ядром 6.14 или, может быть, с исправлениями ZFS, внесенными в ядро 6.14, или я что-то упускаю.
Немного предыстории: Supermicro сервер, два Xeon E5-2696 v4 с 1 ТБ памяти. Broadcom/LSI SAS3224 SAS-3 HBA с 16 шт. 7200RPM WD Enterprise SAS3 HDD в ZFS Raid-10.
Эта команда fio была запущена на хосте: fio job-cpu1.fio | grep "read:\|write:\|READ:\|WRITE:"
Файл job-cpu1.fio:
# Этот файл задания пытается имитировать шаблон доступа к файлам Intel IOmeter File Server
[global]
description=Эмуляция шаблона доступа к файлам Intel IOmeter File Server
[iometer]
bssplit=512/10:1k/5:2k/5:4k/60:8k/2:16k/4:32k/4:64k/10
rw=randrw
rwmixread=80
direct=1
size=4g
numjobs=1
ioengine=libaio
# IOmeter определяет серверные нагрузки следующим образом:
# iodepth=1 Линейный
# iodepth=4 Очень легкий
# iodepth=8 Легкий
# iodepth=64 Умеренный
# iodepth=256 Тяжелый
iodepth=64
cpus_allowed=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65
С ядром 6.14:
read: IOPS=37.3k, BW=171MiB/s (179MB/s)(3279MiB/19178msec)
write: IOPS=9356, BW=42.6MiB/s (44.6MB/s)(817MiB/19178msec); 0 сбросов зоны
READ: bw=171MiB/s (179MB/s), 171MiB/s-171MiB/s (179MB/s-179MB/s), io=3279MiB (3439MB), run=19178-19178msec
WRITE: bw=42.6MiB/s (44.6MB/s), 42.6MiB/s-42.6MiB/s (44.6MB/s-44.6MB/s), io=817MiB (856MB), run=19178-19178msec
С ядром 6.8.12-11
read: IOPS=123k, BW=566MiB/s (593MB/s)(3279MiB/5795msec)
write: IOPS=31.0k, BW=141MiB/s (148MB/s)(817MiB/5795msec); 0 сбросов зоны
READ: bw=566MiB/s (593MB/s), 566MiB/s-566MiB/s (593MB/s-593MB/s), io=3279MiB (3439MB), run=5795-5795msec
WRITE: bw=141MiB/s (148MB/s), 141MiB/s-141MiB/s (148MB/s-148MB/s), io=817MiB (856MB), run=5795-5795msec
Перезагружался между ядрами несколько раз, но разница остается прежней. Что-то делаю не так или ядро 6.14 глючное?
Немного предыстории: Supermicro сервер, два Xeon E5-2696 v4 с 1 ТБ памяти. Broadcom/LSI SAS3224 SAS-3 HBA с 16 шт. 7200RPM WD Enterprise SAS3 HDD в ZFS Raid-10.
Эта команда fio была запущена на хосте: fio job-cpu1.fio | grep "read:\|write:\|READ:\|WRITE:"
Файл job-cpu1.fio:
# Этот файл задания пытается имитировать шаблон доступа к файлам Intel IOmeter File Server
[global]
description=Эмуляция шаблона доступа к файлам Intel IOmeter File Server
[iometer]
bssplit=512/10:1k/5:2k/5:4k/60:8k/2:16k/4:32k/4:64k/10
rw=randrw
rwmixread=80
direct=1
size=4g
numjobs=1
ioengine=libaio
# IOmeter определяет серверные нагрузки следующим образом:
# iodepth=1 Линейный
# iodepth=4 Очень легкий
# iodepth=8 Легкий
# iodepth=64 Умеренный
# iodepth=256 Тяжелый
iodepth=64
cpus_allowed=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65
С ядром 6.14:
read: IOPS=37.3k, BW=171MiB/s (179MB/s)(3279MiB/19178msec)
write: IOPS=9356, BW=42.6MiB/s (44.6MB/s)(817MiB/19178msec); 0 сбросов зоны
READ: bw=171MiB/s (179MB/s), 171MiB/s-171MiB/s (179MB/s-179MB/s), io=3279MiB (3439MB), run=19178-19178msec
WRITE: bw=42.6MiB/s (44.6MB/s), 42.6MiB/s-42.6MiB/s (44.6MB/s-44.6MB/s), io=817MiB (856MB), run=19178-19178msec
С ядром 6.8.12-11
read: IOPS=123k, BW=566MiB/s (593MB/s)(3279MiB/5795msec)
write: IOPS=31.0k, BW=141MiB/s (148MB/s)(817MiB/5795msec); 0 сбросов зоны
READ: bw=566MiB/s (593MB/s), 566MiB/s-566MiB/s (593MB/s-593MB/s), io=3279MiB (3439MB), run=5795-5795msec
WRITE: bw=141MiB/s (148MB/s), 141MiB/s-141MiB/s (148MB/s-148MB/s), io=817MiB (856MB), run=5795-5795msec
Перезагружался между ядрами несколько раз, но разница остается прежней. Что-то делаю не так или ядро 6.14 глючное?
