Вопрос или проблема
Обновление 1: Я перезагрузил этот сервер на другую Ubuntu (тоже 20.04 LTS), установленную на HDD, и hdparm -tT
показывает разумную производительность свыше 1 ГБ/с. Теперь я склонен думать, что это проблема программного обеспечения – SSD должен быть в порядке.
Обновление 2: Запутанно, но atop
не показывает никакой странной активности диска, однако диск все еще “очень активен”. Множество потоков z_wr_iss
появляются случайно время от времени.
Это SSD HP EX920 1TB, установленный на настольном компьютере, работающем круглосуточно как личный сервер. Он хорошо работал более года, и только на прошлой неделе вдруг процессы начали случайно переходить в состояние D (непрерываемый сон). Этот диск только наполовину заполнен и регулярно обрезается.
Результаты тестирования HDparmRidiculouss (^)(/dev/nvme0
– это рассматриваемый SSD, /dev/sda
– другой HDD) (Уточнение: программа HDparm в порядке и не дает сбоев, сам SSD имеет неправильную производительность всего несколько МБ/с):
root@ubuntu:~# hdparm -Tt /dev/nvme0n1
/dev/nvme0n1:
Время кэшированных чтений: 15670 MB за 2.00 секунды = 7839.79 MB/сек
HDIO_DRIVE_CMD(identify) не удался: Неподходящий ioctl для устройства
Время буферизированных чтений диска: 8 MB за 3.61 секунды = 2.22 MB/сек
root@ubuntu:~# hdparm -Tt /dev/sda
/dev/sda:
Время кэшированных чтений: 29014 MB за 2.00 секунды = 14525.03 MB/сек
Время буферизированных чтений диска: 454 MB за 3.01 секунды = 150.67 MB/сек
Однако информация SMART выглядит нормально:
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-56-generic] (локальная сборка)
Авторские права (C) 2002-19, Брюс Аллен, Кристиан Франке, www.smartmontools.org
=== НАЧАЛО РАЗДЕЛА ИНФОРМАЦИИ ===
Модель: HP SSD EX920 1TB
Серийный номер: xxxxxxxxxxxxxxx
Версия прошивки: SVN139B
Vendor ID: 0x1dee
Подсистема Vendor ID: 0x126f
Идентификатор IEEE OUI: 0x000000
Идентификатор контроллера: 1
Количество пространств имен: 1
Размер/вместимость пространства имен 1: 1,024,209,543,168 [1.02 TB]
Отформатированный размер LBA пространства имен 1: 512
Местное время: Пн Дек 7 13:54:15 2020 CST
Обновления прошивки (0x14): 2 слота, сброс не требуется
Дополнительные команды администратора (0x0016): Формат Frmw_DL Self_Test
Дополнительные команды NVM (0x005f): Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat Timestmp
Максимальный размер передачи данных: 64 страницы
Предупреждение порога температуры: 70 Цельсия
Критический порог температуры: 80 Цельсия
Поддерживаемые состояния питания
St Op Mac Активный В режиме ожидания RL RT WL WT Ent_Lat Ex_Lat
0 + 9.00W - - 0 0 0 0 0 0
1 + 4.60W - - 1 1 1 1 0 0
2 + 3.80W - - 2 2 2 2 0 0
3 - 0.0450W - - 3 3 3 3 2000 2000
4 - 0.0040W - - 4 4 4 4 6000 8000
Поддерживаемые размеры LBA (NSID 0x1)
Id Fmt Данные Metadt Rel_Perf
0 + 512 0 0
=== НАЧАЛО РАЗДЕЛА ДАННЫХ SMART ===
Результат теста самодиагностики общего состояния SMART: УСПЕШНО
SMART/Здоровье Информация (NVMe Журнал 0x02)
Критическое предупреждение: 0x00
Температура: 54 Цельсия
Доступный запас: 100%
Порог доступного запаса: 10%
Процент использованного: 0%
Единицы данных, прочитанные: 31,682,199 [16.2 TB]
Единицы данных, записанные: 50,028,403 [25.6 TB]
Команды чтения хоста: 538,395,033
Команды записи хоста: 1,279,795,487
Время занятости контроллера: 20,480
Циклы питания: 1,012
Часы включения: 7,879
Ненадежные выключения: 40
Ошибки целостности медиа и данных: 0
Записи журнала информации об ошибках: 0
Предупреждение времени температуры: 7
Критическое время температуры: 0
Счётчик переходов по температуре 1: 8
Счётчик переходов по температуре 2: 2
Общее время по температуре 1: 1118
Общее время по температуре 2: 214
Информация об ошибках (NVMe Журнал 0x01, максимум 256 записей)
Ошибок не зарегистрировано
Попытка доступа к информации APM (hdparm -B
) на этом NVMe SSD только дает “Неподходящий ioctl для устройства”.
Кроме того, я не обнаружил никаких поврежденных данных (все целы), только неоправданно низкие скорости чтения/записи.
На диске есть три раздела: раздел EFI (несколько сотен МиБ), раздел ext4 как корневую файловую систему (128 ГиБ) и остальная часть выделяется под ZFS. Запуск hdparm -tT
на отдельных разделах дает похожие результаты (менее 10 МБ/с скорость чтения). Все эти разделы выровнены по границам 1 МиБ.
Что мне делать дальше, чтобы восстановить “нормальную” скорость этого SSD? Или мне стоит взять замену?
Это NVMe диск, вам, вероятно, нужно установить nvme-cli, чтобы проверить настройки APM, и причина, по которой ioctl не сработал. Потоки z_wr_iss – это потоки записи ZFS на Linux. Эти буферизированные чтения очень медленные, возможно, память вашего компьютера медленная? Или, возможно, это может быть связано с настройками ZFS.
Ответ или решение
Внезапное снижение скорости NVMe SSD: Решение проблемы
Когда ваш NVMe SSD, например HP SSD EX920 на 1 ТБ, вдруг начинает демонстрировать удивительно низкие скорости чтения и записи, это может быть вызвано несколькими причинами. Давайте подробно проанализируем вашу ситуацию и предложим ряд шагов для диагностики и решения проблемы.
1. Проверка базовых параметров
Судя по вашему описанию, SSD работал без нареканий более года, и внезапное снижение производительности может свидетельствовать о программной или аппаратной проблеме. Вы уже убедились, что:
- HDD на платформе Ubuntu работает на приемлемой скорости, что намекает на то, что проблема в SSD, а не в системе.
- Тесты HDParm указывают на снижение производительности SSD: например, 2.22 МБ/с в тестах.
- SMART данные показывают, что диск, по всей видимости, в неплохом состоянии.
Ваши следующие шаги могут включать следующие шаги:
2. Анализ работы ZFS
Вы упомянули, что на сервере используется ZFS. Возможно, именно эта файловая система вызывает проблемы:
-
Память и настройка ZFS: Убедитесь, что вашей системе поставляется достаточное количество оперативной памяти. ZFS известен своей высокой потребностью в RAM для кэширования данных. Если памя́ти недостаточно, это может привести к значительному замедлению операций ввода-вывода.
-
Состояние пула ZFS: Проверьте состояние вашего ZFS пула с помощью команды
zpool status
и убедитесь, что нет ошибок или проблем с доступом к данным. Если в пуле есть проблемы, он может работать в режиме восстановления, что значительно замедляет операции. -
Индексация и фрагментация: Если в ZFS происходит много индексации, это также может снизить производительность. Возможно, следует пересмотреть настройки кэширования и индексации.
3. Проблемы с драйверами и ПО
Ваш SSD может иметь проблемы с совместимостью драйверов или конфигураций.
-
Обновление драйвера NVMe: Убедитесь, что вы используете последние версии драйверов для NVMe. Устаревшие драйверы могут вызывать проблемы со скоростью и стабильностью.
-
nvme-cli: Установите
nvme-cli
для более детального управления вашим SSD. Используйтеnvme get-feature
или другие команды, чтобы просмотреть настройки и состояние вашего SSD. -
APM и другие параметры: Вы уже обнаружили проблемы с использованием команды
hdparm
для получения APM настроек. Возможно, вам будет полезно использоватьnvme-cli
, чтобы проверить параметры управления энергопотреблением.
4. Проверка целостности данных
Даже если вы не заметили коррумпированных данных, это не исключает проблемы с целостностью файловых систем.
- Проверка файловых систем: Выполните команду fsck для ext4 и ZFS утилиты для проверки целостности ваших файловых систем.
5. Финальные шаги
Если все вышеперечисленные проверки и оптимизации не помогут вернуть диск в стабильное состояние, то имеет смысл рассмотреть замену SSD.
-
Тесты с другим оборудованием: Подключите SSD к другому компьютеру или серверу, где установлена другая операционная система, и проверьте производительность. Если диск в других условиях работает должным образом, это может подтвердить наличие проблемы в конфигурации ПО.
-
Обратитесь в службу поддержки: В случае, если проблема не решается и SSD продолжает работать нестабильно, обратитесь в службу поддержки производителя для получения дополнительной информации и возможной замены.
Заключение
Проблемы с производительностью NVMe SSD могут быть сложными и многофакторными. Используя предложенные шаги по диагностике и устранению неисправностей, вы сможете вернуть диск в нормальное рабочее состояние или, по крайней мере, выявить и устранить причину замедления. Не забывайте, что регулярное резервное копирование данных всегда важно, особенно при использовании высокопроизводительных накопителей в рабочих условиях.