Обсудить
бизнес-задачи

Производительность дисков

блог о bi, №1 в рунете
Производительность дисков является критическим фактором для большинства современных приложений и систем. Она определяет скорость, с которой данные могут быть прочитаны или записаны на диск, что напрямую влияет на общую производительность системы. В этой статье мы рассмотрим основные аспекты производительности дисков, методы тестирования и способы оптимизации.

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

1. IOPS (Input/Output Operations Per Second)
IOPS измеряет количество операций ввода/вывода, которые устройство может обработать за секунду. Это ключевой показатель производительности для дисков
2. Throughput
Throughput (пропускная способность) измеряет объем данных, который может быть прочитан или записан за секунду. Обычно измеряется в MB/s или GB/s
3. Latency
Latency (задержка) — это время, необходимое для выполнения операции ввода/вывода. Измеряется в миллисекундах (ms) и является важным показателем для оценки реактивности системы

DiskSpd

Одним из самых популярных инструментов для анализа производительности дисков является DiskSpd. Он позволяет проводить микро-бенчмаркинг (анализ) и тестирование производительности хранилища. Среди его преимуществ высокая степень гибкости настроек, которая позволяет создавать синтетические рабочие нагрузки для анализа и диагностики проблем с производительностью хранилища без необходимости запускать полную рабочую нагрузку от начала до конца. DiskSpd позволяет настраивать различные параметры тестирования, включая размер файлов, продолжительность теста, количество потоков и блоковые размеры.

Утилита может быть использована с другими инструментами для анализа производительности, такими как Performance Monitor (PerfMon) в Windows.

Для этого откройте Performance Monitor и выполните следующие шаги:
  • Зайдите в раздел Monitoring Tools и выберите Performance Monitor.
  • Нажмите Add (+).
  • В появившемся окне найдите раздел PhysicalDisk и выберите интересующую вас метрику (например, Avg Disk Queue Length).
  • Нажмите Add >>
  • Нажмите OK
Performance Monitor полезен для сбора дополнительных метрик системы во время тестирования. Это может помочь в диагностике узких мест и оптимизации производительности на уровне системы.

Тесты

Функционал DiskSpd позволяет проводить различные типы тестов, такие как:

  • Random Read/Write: симулирует случайные операции чтения и записи, что может быть полезно для моделирования реальных рабочих нагрузок приложений.
  • Sequential Read/Write: эмулирует последовательные операции чтения и записи, что может быть полезно для оценки производительности при работе с большими файлами или базами данных.
  • Mixed Workloads: позволяет комбинировать различные типы тестов для более точного представления реальной рабочей нагрузки.
Для проведения теста производительности диска, можно использовать следующую команду:
<расположение утилиты>\diskspd.exe -c10M -d30 -r -w40 -t4 -o32 -b4k -Sh -L 

<расположение утилиты>\diskspd\testfile.dat
  • -c10M: определяет размер файла для тестирования (в данном случае 10 МБ).
  • -d30: продолжительность теста (30 секунд).
  • -r: генерация случайных чтений/записей.
  • -w40: 40% потоков будут выполнять операции записи.
  • -t4: число потоков (в данном случае 4).
  • -o32: количество запросов чтений/записей на целевой поток.
  • -b4k: размер блока файла для записи (4 КБ).
  • -Sh: отключает программное и аппаратное кэширование.
  • -L: измеряет задержку.
Пример результата работы:
Когда использовать DiskSpd:

  • Перед развертыванием приложений: для симуляции тестовых условий и предварительного прогнозирования производительности системы.
  • Тестирование производительности хранилища: для определения метрик, таких как пропускная способность, задержка и IOPS, в различных условиях рабочей нагрузки.

Итог

Хотя DiskSpd является мощным инструментом, он лучше всего подходит для простых сценариев и не всегда может точно эмулировать сложные рабочие нагрузки.

Тем не менее, удобство и функционал делают его очень полезным и востребованным инструментом для тестирования и оптимизации производительности хранилища. Его использование в сочетании с правильной подготовкой и интерпретацией данных может значительно помочь в оптимизации производительности дисков и всей системы в целом.