На SATA 3.0, 6.0 Гбит / с
*-disk:0
description: ATA Disk
product: WDC WD20EFRX-68E
vendor: Western Digital
physical id: 0
bus info: scsi@1:0.0.0
hw_sector_size: 512
logical_block_size: 512
physical_block_size: 4096
# parted /dev/sda print
Model: ATA WDC WD20EFRX-68E (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
У меня есть следующие результаты fio на пустой / dev / sda3 (ext4):
fio --name=seqread --rw=read --direct=1 --ioengine=libaio --bs=8k --numjobs=8 --size=1G --runtime=600 --group_reporting
seqread IOPS=8960, BW=70.0MiB/s (73.4MB/s)(8192MiB/117028msec)
fio --name=seqwrite --rw=write --direct=1 --ioengine=libaio --bs=32k --numjobs=4 --size=2G --runtime=600 --group_reporting
seqwrite IOPS=1538, BW=48.1MiB/s (50.4MB/s)(8192MiB/170345msec); 0 zone resets
fio --name=randread --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=16 --size=1G --runtime=600 --group_reporting
randread IOPS=163, BW=1305KiB/s (1337kB/s)(765MiB/600078msec)
fio --name=randwrite --rw=randwrite --direct=1 --ioengine=libaio --bs=64k --numjobs=8 --size=512m --runtime=600 --group_reporting
randwrite IOPS=165, BW=10.3MiB/s (10.8MB/s)(4096MiB/395912msec); 0 zone resets
fio --name=randrw --rw=randrw --direct=1 --ioengine=libaio --bs=16k --numjobs=8 --rwmixread=90 --size=1G --runtime=600 --group_reporting
randrw read IOPS=141, BW=2258KiB/s (2313kB/s)(1324MiB/600086msec)
randrw write IOPS=15, BW=253KiB/s (259kB/s)(148MiB/600086msec); 0 zone resets
Сначала я подумал, что у меня неправильное выравнивание сектора,
Number Start End Size File system Name Flags
1 1048576B 511705087B 510656512B fat32 boot, esp
2 511705088B 54198796287B 53687091200B raid
3 54198796288B 215260069887B 161061273600B ext4 Linux filesystem
4 215260069888B 2000398917119B 1785138847232B Linux RAID raid
но все начальные сектора делятся на 4096, а parted говорит мне, что
(parted) align-check opt 1
1 aligned
(parted) align-check opt 2
2 aligned
(parted) align-check opt 3
3 aligned
(parted) align-check opt 4
4 aligned
SMART выглядит хорошо:
Эти результаты fio аналогичны системе, работающей на Debian 10 и Компакт-диск Arch Linux Live. Это не самые быстрые спиннеры, поэтому я могу жить с последовательными результатами (хотя они должны быть выше), но случайные результаты R, W и RW неприемлемы.
Ядро - 5.0.x (5.2.x на live CD), а планировщик - по умолчанию (и рекомендуемые)
# cat /sys/block/sda/queue/scheduler
[mq-deadline] none
Изменение планировщика на BFQ не помогло.
AFAIK выравнивание секторов в порядке, но либо мне чего-то не хватает, либо у меня есть неисправные диски (новые и на гарантии). <200 IOPS и <2,5 МБ / с временами выводят систему из строя.
Я здесь в растерянности. Как это исправить? Или у меня неисправные диски (маловероятно, поскольку это два одинаковых диска с одинаковыми результатами)?
Кажется, что вы выполняете ввод-вывод в файловой системе с вашими заданиями fio. Если так, это добавляет еще один фактор, мешающий вашим результатам. ПРЕДУПРЕЖДЕНИЕ - выполнение ввода-вывода непосредственно на дисковый узел может УНИЧТОЖИТЬ файловую систему и данные, которые уже там находятся. так что будьте осторожны, если вы решите перейти непосредственно к /dev/sda
!
Вы собираетесь работать напрямую, используя максимум 8 незавершенных операций ввода-вывода. Вероятно, это слишком мало, чтобы обеспечить максимальную производительность вашего диска (диски SATA обычно могут стоять в очереди около 32 невыполненных операций ввода-вывода). Вы также используете несколько процессов для отправки ввода-вывода, что, вероятно, повлечет за собой некоторые накладные расходы по сравнению с отправкой ввода-вывода асинхронно.
Резюме: не могу сказать, неисправны ли диски, потому что ваши задания fio выглядят странно. Возможно, отправлено недостаточно операций ввода-вывода (fio упоминает статистику диска, которую вы здесь не указали - проверьте, как выглядит использование вашего диска). Кроме того, такие вещи, как кеши на самом диске, могут означать, что вы в конечном итоге получите искаженный результат из-за того, что область, в которой вы работаете, настолько мала, и несколько заданий работают на одной и той же области диска, поэтому будьте осторожны (я бы предположил это было бы более вероятно в «последовательных» случаях).