Вопрос или проблема
У меня новый ноутбук с процессором Intel 7-155H и NVMe SSD. Я использую Linux Mint 21.3 и сталкиваюсь с проблемами хранения данных. При первоначальной установке вся система работала очень медленно. Я обновился до ядра 6.5.0-1023-oem, и ситуация значительно улучшилась. Однако, каждый раз, когда я делаю умеренное количество операций чтения/записи, вся система зависает, за исключением курсора мыши, примерно на минуту. Вывод dmesg показывает несколько сообщений, таких как:
nvme nvme0: I/O 97 QID 1 timeout, completion polled
Как я могу определить первопричину этой проблемы и решить ее?
Хотя это и не полное решение, я нашел временную обертку, которая делает систему пригодной для использования и может помочь другим.
В интернете можно найти сообщения, в которых предлагается установить nvme.poll_queues
на высокое число (до 64), но это на самом деле вызовет ошибку на некоторых ядрах как недопустимая опция. Наивысшее значение, которое мне удалось установить, — 16; в то время как 20 будет принято, система не сможет найти диск во время шага расшифровки LUKS. Я предполагаю, что 20 – это максимальное количество поддерживаемых очередей, поэтому нет доступных очередей для обработки обычных запросов чтения, если они все заняты опросом.
Использование общепринятого nvme.poll_queues=4
не дает значительных результатов, потому что система все равно зависает на 30 секунд каждый раз, когда добавляется элемент в очередь. Использование очередей в сочетании с очень коротким тайм-аутом дало отзывчивую систему, где в лучшем случае я наблюдаю зависание на 1 секунду при копировании больших файлов. Пока что я не заметил негативных последствий от этого.
Вот моя текущая конфигурация GRUB:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvme_core.default_ps_max_latency_us=0 nvme.poll_queues=4 nvme_core.io_timeout=1"
Я только что купил Acer Swift Go с одним из этих процессоров u7-155h (WD sn740 nvme) и столкнулся с той же проблемой.
Я установил последнюю версию BIOS (1.14), что решило проблему. Таймауты исчезли. Скачайте драйвер IRST и установите ОС на базе MS-DOS, чтобы прошить микропрограмму 🙁
Ответ или решение
Проблемы с тайм-аутами NVMe на новом ноутбуке Intel 7-155H с ядром 6.5 OEM: решение и устранение причин
Недавние сообщения пользователей о проблемах с производительностью и тайм-аутами NVMe на ноутбуках с процессором Intel 7-155H, особенно при использовании Linux Mint 21.3, привлекают внимание IT-экспертов. Это может вызывать значительные неудобства, особенно когда система тормозит или зависает во время операций чтения и записи. Рассмотрим детали проблемы и возможные решения.
Проблема с производительностью
В вашем случае первая установка системы была связана с медленной работой, но обновление до ядра 6.5.0-1023-oem значительно улучшило ситуацию. Однако, всё ещё наблюдаются случаи зависания системы на длительные промежутки времени при осуществлении входно-выходных операций, с сообщениями об ошибках, указывающими на тайм-ауты NVMe. Сообщения вида:
nvme nvme0: I/O 97 QID 1 timeout, completion polled
подтверждают наличие проблем с обработкой запросов.
Устранение корневой причины
-
Настройки NVMe: Одним из решений, которое вы могли обнаружить, является изменение параметров ядра, касающихся управления NVMe. Обратите внимание на параметр
nvme.poll_queues
. Установка этого параметра на более высокое значение может вызвать ошибки на определённых ядрах, и, как вы правильно отметили, чрезмерное использование всех доступных очередей может повлиять на работу системы. -
Настройка GRUB: Ваша текущая настройка GRUB, включающая
nvme_core.io_timeout=1
иnvme.poll_queues=4
, выглядит целесообразно, хотя и временно решает проблему. Установленный тайм-аут в 1 секунду сокращает длительность зависаний, что делает систему более отзывчивой.Пример:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvme_core.default_ps_max_latency_us=0 nvme.poll_queues=4 nvme_core.io_timeout=1"
-
Обновление BIOS: Самое современное решение, которое вы упомянули — обновление BIOS до версии 1.14, которое помогло улучшить работу NVMe. Это важно, так как многие проблемы совместимости могут быть решены на уровне микропрограммы. Убедитесь, что установленное вами обновление BIOS — последнее.
-
Обновление драйверов: Установка драйвера IRST, как вы упомянули, также может помочь. Если вы используете его, а также работаете с ОС на основе MS-DOS для перепрошивки, то это подтверждает, что грядущие обновления и драйвера могут иметь значительное влияние на работу SSD.
Заключение
Если ваши текущие решения приносят временное облегчение, важно продолжать следить за обновлениями и рекомендациями от разработчиков ядра и BIOS. Это позволит обеспечить долгосрочную стабильность и улучшение производительности вашего устройства. Тщательно тестируйте каждое изменение и следите за сообщениями в dmesg
для выявления потенциальных новых проблем.
Рекомендации:
- Следите за обновлениями ядра и рекомендуемыми стабильными версиями.
- Обновляйте прошивку вашего NVMe-накопителя и BIOS.
- Регулярно проверяйте совместимость используемых вами драйверов и системных настроек.
Тем не менее, вы не одиноки в этой проблеме, и сообщество пользователей Linux активно делится решениями и находит новые подходы.