Ответ
С точки зрения производительности ввода-вывода (IOPS и пропускной способности), типы дисков можно расположить в следующем порядке (от быстрых к медленным):
- NVMe SSD (PCIe 4.0/5.0) — Самые быстрые. Подключаются напрямую через шину PCIe, имеют наименьшую задержку (латентность).
- NVMe SSD (PCIe 3.0) — Чуть медленнее, но все равно значительно быстрее SATA.
- SATA SSD — Ограничены пропускной способностью интерфейса SATA (~550 МБ/с).
- HDD (жесткие диски, SAS/SATA) — Самые медленные из-за механических движущихся частей.
Как проверить скорость диска в Linux:
1. Использование fio (Flexible I/O Tester) — наиболее точный и гибкий инструмент.
Установка: sudo apt install fio (Debian/Ubuntu) или sudo yum install fio (RHEL/CentOS).
-
Тест последовательного чтения/записи (пропускная способность):
# Тест последовательного чтения (1 MiB blocks) fio --name=seq_read --filename=/dev/nvme0n1 --rw=read --bs=1M --size=1G --direct=1 --ioengine=libaio --iodepth=64 --runtime=30 --time_based --group_reporting # Тест последовательной записи fio --name=seq_write --filename=/dev/nvme0n1 --rw=write --bs=1M --size=1G --direct=1 --ioengine=libaio --iodepth=64 --runtime=30 --time_based --group_reporting -
Тест случайного чтения/записи (IOPS, важный для баз данных):
# Тест случайного чтения (4 KiB blocks) fio --name=rand_read --filename=/dev/nvme0n1 --rw=randread --bs=4k --size=1G --direct=1 --ioengine=libaio --iodepth=64 --runtime=30 --time_based --group_reporting
2. Использование hdparm (быстрый тест для SATA устройств):
# Тест кэшированного чтения (из буфера ОЗУ)
sudo hdparm -T /dev/sda
# Тест непосредственного чтения с диска
sudo hdparm -t /dev/sda
3. Использование dd (простой, но не всегда точный тест последовательной записи):
# Запись 1 ГБ файла (осторожно, перезапишет данные!)
sync; dd if=/dev/zero of=./testfile bs=1G count=1 oflag=direct; sync
# Чтение 1 ГБ файла
dd if=./testfile of=/dev/null bs=1G count=1
# Удалить тестовый файл
rm testfile
Практический вывод для DevOps: При проектировании высоконагруженных систем (базы данных, кэши) выбор NVMe дисков критически важен для достижения высоких IOPS. Мониторинг дискового ввода-вывода (например, через iostat -x 1) помогает выявлять узкие места.