В чем измеряется производительность жесткого диска или SSD?

«В чем измеряется производительность жесткого диска или SSD?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Производительность дисков (HDD/SSD/NVMe) в контексте DevOps измеряется метриками, критичными для производительности приложений и планирования инфраструктуры:

  1. Пропускная способность (Throughput): Измеряется в мегабайтах/гигабайтах в секунду (MB/s, GB/s). Показывает, какой объем данных можно прочитать или записать за единицу времени. Важна для операций с большими файлами (например, обработка логов, резервное копирование).

  2. Количество операций ввода-вывода в секунду (IOPS): Ключевая метрика для рабочих нагрузок с большим количеством мелких случайных операций (базы данных, виртуализация). Высокий IOPS — сильная сторона SSD.

  3. Задержка (Latency): Измеряется в миллисекундах (ms). Время от отправки запроса до получения ответа. Низкая задержка критична для интерактивных приложений и баз данных.

Практический пример измерения в Linux: Для комплексного тестирования мы используем fio (Flexible I/O Tester), так как он дает контроль над типом нагрузки (random/sequential, read/write) и глубиной очереди (iodepth).

# Тест случайного чтения 4K блоками (типичная нагрузка для БД)
fio --name=randread --ioengine=libaio --iodepth=64 
    --rw=randread --bs=4k --direct=1 --size=1G --numjobs=4 
    --runtime=60 --group_reporting --filename=/dev/sdb

В выводе мы смотрим на:

  • IOPS (например, read: IOPS=95.3k)
  • BW (Bandwidth, пропускная способность, например, BW=373MiB/s)
  • lat (latency, например, clat avg=670.50 usec)

Эти данные используются для выбора типа диска (например, HDD для холодного хранения, NVMe для БД), настройки RAID-массивов и планирования масштабирования.