← Назад к вопросам

Какие нормальные значения производительности дисковой подсистемы в Linux

2.0 Middle🔥 211 комментариев
#Linux и администрирование

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Нормальные значения производительности дисковой подсистемы в Linux

Производительность дисковой подсистемы в Linux — это комплексный показатель, который зависит от типа накопителя, конфигурации RAID, файловой системы и рабочих нагрузок. Нормальные значения сильно различаются для HDD (жёстких дисков), SSD и NVMe-накопителей.

Ключевые метрики производительности

Основные показатели, которые необходимо отслеживать:

  1. Пропускная способность (Throughput) — объём данных, переданных за единицу времени (МБ/с, ГБ/с).
  2. Количество операций ввода-вывода в секунду (IOPS) — особенно критично для баз данных и виртуальных машин.
  3. Задержка (Latency) — время от момента отправки запроса до получения ответа. Измеряется в миллисекундах (мс) или микросекундах (мкс).

Ориентировочные нормальные значения по типам накопителей

1. HDD (SATA/SAS 7200-15000 RPM)

HDD характеризуются высокой задержкой и умеренными значениями IOPS, так как зависят от механического перемещения головок.

  • Пропускная способность: 80-200 МБ/с для последовательного чтения/записи.
  • IOPS:
    *   Случайное чтение: 75-150 IOPS (зависит от RPM).
    *   Случайная запись: 50-120 IOPS.
  • Задержка: 3-12 мс. Значения выше 20 мс часто указывают на проблемы (фрагментация, высокая нагрузка, неисправность).
  • Команда для базового теста (fio):
    # Тест случайного чтения 4K блоками (ключевой для БД)
    fio --name=randread --ioengine=libaio --iodepth=32 --rw=randread --bs=4k --direct=1 --size=1G --numjobs=1 --runtime=60 --group_reporting
    

2. SATA SSD

SSD обеспечивают на порядок более высокую производительность случайного доступа по сравнению с HDD.

  • Пропускная способность: 300-550 МБ/с (ограничено интерфейсом SATA III — 6 Гбит/с).
  • IOPS:
    *   Случайное чтение: 30 000 — 100 000 IOPS.
    *   Случайная запись: 20 000 — 80 000 IOPS (зависит от типа памяти NAND — SLC/MLC/TLC/QLC).
  • Задержка: 0.1 — 0.5 мс для чтения, 0.1 — 2 мс для записи.
  • Команда для мониторинга в реальном времени (iostat):
    # Обновлять статистику каждые 2 секунды для всех устройств
    iostat -x 2
    
    Ключевые поля: `r/s`, `w/s` (IOPS), `rkB/s`, `wkB/s` (пропускная способность), `await` (средняя задержка в мс), `%util` (утилизация).

3. NVMe SSD (PCIe 3.0/4.0/5.0)

Современные NVMe-накопители используют шину PCIe, что снимает ограничения SATA и обеспечивает максимальную производительность.

  • Пропускная способность:
    *   PCIe 3.0 x4: до 3.5 ГБ/с на чтение, 3.0 ГБ/с на запись.
    *   PCIe 4.0 x4: до 7.0 ГБ/с.
    *   PCIe 5.0 x4: до 14.0 ГБ/с.
  • IOPS:
    *   Случайное чтение: от 500 000 до нескольких миллионов IOPS.
    *   Случайная запись: от 300 000 до 1+ миллиона IOPS.
  • Задержка: Чтение — 10-100 мкс, запись — 10-200 мкс.
  • Утилита для комплексного тестирования с разными профилями нагрузок:
    # Использование утилиты `nvme` (пакет nvme-cli) для проверки характеристик
    sudo nvme list
    sudo nvme perf /dev/nvme0n1  # Базовый тест производительности (осторожно, нагружает диск)
    

Важные факторы, влияющие на производительность

Нормальные значения — это не статическая цифра. На замеры влияет множество факторов:

  • Глубина очереди (Queue Depth, iodepth): Чем она выше, тем больше параллельных операций может выполнить накопитель, что увеличивает IOPS (особенно для NVMe). Для HDD увеличение глубины очереди свыше 8-16 редко даёт прирост.
  • Размер блока (Block Size, bs): Тест с блоками 512Б, 4К, 128К покажет совершенно разные результаты. 4К — это стандартный размер страницы в Linux и критичен для большинства приложений.
  • Соотношение чтения/записи (rwmix): Производительность записи, особенно на SSD, часто ниже, чем чтения.
  • Режим доступа: Прямой ввод-вывод (Direct I/O, O_DIRECT) позволяет обойти кэш страниц ОС и измерить реальную скорость диска. Буферизованный ввод-вывод будет показывать аномально высокие результаты из-за использования оперативной памяти.
  • Файловая система и её настройки: Ext4, XFS, Btrfs, F2FS (для SSD) — все ведут себя по-разному. Важны параметры монтирования, такие как noatime, nodiratime, barrier.
  • Тип рабочей нагрузки: Веб-сервер (много случайного чтения мелких файлов), база данных (случайное чтение/запись 4К-16К блоков), система резервного копирования (последовательная запись больших объёмов).
  • Состояние накопителя: SSD подвержены износу (TBW). Прошивка, степень заполнения (over-provisioning), сборка мусора (GC) и технология памяти (SLC-кэш) сильно влияют на долгосрочную производительность, особенно при длительных операциях записи.

Критерии проблемной производительности

Сигналы, указывающие на то, что производительность не является нормальной:

  1. Задержки (await, r_await, w_await в iostat) стабильно превышают:
    *   Для HDD: 20 мс.
    *   Для SATA SSD: 5-10 мс.
    *   Для NVMe SSD: 1-2 мс.
  1. Утилизация диска (%util) постоянно близка к 100% при высокой задержке — система не справляется с нагрузкой, формируются очереди.
  2. Резкое падение пропускной способности или IOPS по сравнению с базовыми замерами на новом накопителе (актуально для SSD при долгой записи).
  3. Большое количество операций ввода-вывода в очереди (avgqu-sz в iostat) при высокой задержке.

Практический совет по оценке

Всегда создавайте базлайн (baseline) производительности для вашей конкретной системы в период минимальной нагрузки, используя реалистичные для вашего приложения параметры теста (размер блока, глубина очереди, тип доступа). Например, для сервера PostgreSQL нормальным будет ориентироваться на высокие IOPS при случайном чтении/записи блоками 8К-16К. Только сравнивая текущие показатели с этим базлайном, можно объективно судить о наличии проблем.

Вывод: Норма — это не абстрактное число, а диапазон, соответствующий типу оборудования и ожидаемой нагрузке. Мониторинг с помощью iostat, iotop, /proc/diskstats и периодическое контрольное тестирование с fio — основа для поддержания здоровья дисковой подсистемы.

Какие нормальные значения производительности дисковой подсистемы в Linux | PrepBro