我有一台配备 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"