Вопрос или проблема
Я пытаюсь провести тестирование моего SSD, Micron 7450 Pro, используя FIO.
Я подготовил диск, дважды выполнив последовательную запись с помощью FIO, а затем провел тест производительности с случайной записью.
sudo fio –name=seq_write –filename=/dev/nvme2n1 –direct=1 –rw=write –bs=128k –ioengine=libaio –iodepth=512 –size=100% –loops=2 –buffer_pattern=0xbeef
Согласно техническому описанию, диск должен достигать 180K IOPS, поэтому я ожидал этого результата, но вместо этого я получаю около 850K IOPS. Как можно разобраться в этой проблеме?
> sudo fio --name=write_test --filename=/dev/nvme2n1 --rw=randwrite --bs=4k --direct=1 --iodepth=256 --ioengine=io_uring --runtime=180
--numjobs=32 --group_reporting
write: IOPS=855k, BW=3341MiB/s (3503MB/s)(17.1GiB/5256msec); 0 zone resets
Время выполнения составляет 3 минуты, поэтому я ожидаю, что любое поведение кеша исчезнет через несколько секунд.
Это поведение происходит только с размером страницы 4096B. При запуске на 2K, 1K, 512B никаких признаков этого поведения не наблюдается.
write: IOPS=229k, BW=448MiB/s (470MB/s)(78.8GiB/180036msec); 0 zone resets
Ответ или решение
Когда вы сталкиваетесь с ситуацией, где инструмент FIO показывает производительность, превышающую заявленные спецификации SSD, это может быть следствием нескольких факторов, которые необходимо хорошо понять и аккуратно диагностировать.
F – Факты и основы проблемы: Ваш SSD, Micron 7450 Pro, заявляет производительность в 180K IOPS согласно спецификации. Тем не менее, при использовании FIO вы зафиксировали результат в 855K IOPS при тестировании на случайную запись с размером блока 4KB. Этот разрыв может быть следствием нескольких условий.
O – Осмотр и анализ текущей ситуации:
-
Кэширование и буферизация: Даже с использованием флага
--direct=1
, который предназначен для обхода кэширования операционной системы, возможно, кэширование все же влияет. Убедитесь, что нет аппаратных и драйверных механизмов, которые могут временно буферизовать данные. -
Проверка конфигурации и параметров FIO: Обратите внимание на использованные параметры, такие как
--iodepth=256
,--numjobs=32
и движокio_uring
, которые в совокупности могут искусственно увеличивать IOPS за счет отзывчивости операций I/O и параллелизма. -
Влияние носителя и его внутренней архитектуры: Современные SSD могут временно выполнять операции с избыточной производительностью за счет работы с кеш-памятью (например, SLC кеширование), особенно на коротких временных промежутках. Рассмотрите возможность использования внутренних свойств самого накопителя, которые искажают результаты тестов.
-
Тестирование других размеров блоков: Как вы отметили, проблема не выражается при использовании других размеров блоков (2К, 1К и 512Б). Это может быть связано с особенностями работы контроллера SSD с разными блоками.
R – Решения и шаги для диагностики:
-
Подтверждение работоспособности ФИЗИЧЕСКОГО обхода кэша: Проверьте работу с параметрами
--sync=1
иfsync_on_close=1
, чтобы минимизировать любые формы кэширования. -
Снижение параллелизма: Попробуйте уменьшить количество параллельных задач (
--numjobs
) и глубину очереди (--iodepth
) для оценки, как это влияет на результаты. -
Анализ долгосрочной производительности: Убедитесь, что тест выполняется достаточно долго для достижения равномерной производительности. 180 секунд может быть недостаточно при специфичных сценариях I/O.
E – Объяснение и оптимизация:
Следите за тем, чтобы результаты теста соответствовали типичным сценариям нагрузки вашего SSD. Это не только улучшит понимание причин подобного поведения, но и поможет оптимизировать производительность под ваши задачи.
S – Подытоживание и рекомендации:
Ваша основная задача — понять, насколько результаты FIO соответствуют реальному использованию SSD в ваших условиях. Это может потребовать корректировки метода тестирования или параметров системы. Рассмотрите возможность проведения дополнительных тестов и обратитесь за технической поддержкой, если проблема не будет устранена.
T – Дальнейшие действия и интеграция в бизнес-процессы:
Эти результаты анализа помогут вам интегрировать подобные решения в бизнес-процессы, повысить надёжность тестовых методологий и обеспечить соответствие реальной производительности оборудования заявленным спецификациям, что в свою очередь укрепит доверие к IT-инфраструктуре вашего предприятия.