许多 Linux 用户换上 NVMe SSD 后,发现性能并没有想象中“飞起”?
实则,Linux 默认 I/O 策略偏向兼容和省电,即使是高性能 SSD 也可能没发挥100%实力。
今天,我们动手开启 NVMe 多队列优化 + I/O 调度器调优,让 SSD 性能直线提升
适用系统:Ubuntu / Debian / Arch / Fedora / openSUSE 等主流 Linux
适用硬件:NVMe SSD(PCIe 3.0/4.0/5.0 均适用)
一、查看当前 NVMe 队列状态
多队列 = 更多并发 = 更快
执行:
cat /sys/block/nvme0n1/queue/nr_requests
cat /sys/block/nvme0n1/queue/nr_hw_queues
示例输出(默认常见情况):
64
1
hw_queues=1 表明未充分启用多队列(可优化)
二、开启更高队列数(推荐 1024)
sudo bash -c “echo 1024 > /sys/block/nvme0n1/queue/nr_requests”
验证:
cat /sys/block/nvme0n1/queue/nr_requests
如果输出 1024,说明生效 ✅
三、调整 I/O 调度器 — 选择
none 或 mq-deadline
查询当前调度算法:
cat /sys/block/nvme0n1/queue/scheduler
输出示例:
[mq-deadline] kyber none
推荐启用 none(纯 NVMe = 最快)
echo none | sudo tee /sys/block/nvme0n1/queue/scheduler
四、持久化设置(避免重启失效)
创建规则文件:
sudo nano /etc/udev/rules.d/90-nvme-performance.rules
粘贴:
ACTION==”add|change”, KERNEL==”nvme[0-9]n[0-9]”, ATTR{queue/scheduler}=”none”, ATTR{queue/nr_requests}=”1024″
保存后执行:
sudo udevadm control –reload-rules
sudo udevadm trigger
五、性能验证(实测对比)
安装测试工具:
sudo apt install fio
测试示例:
fio –name=read –ioengine=libaio –iodepth=32 –rw=randread –bs=4k –numjobs=4 –direct=1 –size=1G –filename=/tmp/testfile
常见提升范围:
|
场景 |
提升幅度 |
|
随机读写 |
15%–40%✅ |
|
应用启动速度 |
明显加快✅ |
|
数据库性能(MySQL/PostgreSQL) |
更稳定✅ |
为什么这个技巧很强?
|
机制 |
作用 |
|
NVMe 多队列 |
让 SSD 实现多线程高速调度 |
|
none 调度器 |
减少 CPU I/O 排队开销 |
|
队列提升 |
增加吞吐能力 |
|
全系统通用 |
Server / NAS / 桌面都受益 |
这是服务器级优化技巧,许多企业运维都在用
注意
- 不适用 SATA SSD / HDD(仅 NVMe)
- 提议 SSD 有良好散热
- 对虚拟机 KVM/QEMU 亦有效
总结
|
优化内容 |
效果 |
|
开启多队列 |
✅ 更高并发 |
|
调度器设置 none |
✅ 更低延迟 |
|
队列长度 1024 |
✅ 更快 I/O |
只需几条命令 → SSD 进入真正高速模式



















暂无评论内容