Linux怎么查看当前的IO调度算法是什么
作者:Jason
时间:2026-08-11
浏览:0
真正靠谱的判断方式,还是直接去读 /sys/block/设备名/queue/scheduler:块设备的调度器是按设备单独配置的,不能一概而论。先用 lsblk -d 确认对应的物理设备名,再通过 cat 查看这个路径下的内容,方括号里的那一项,就是当前实际生效的配置。至于 NVMe 设备显示 [n
真正靠谱的判断方式,还是直接去读 /sys/block/设备名/queue/scheduler:块设备的调度器是按设备单独配置的,不能一概而论。先用 lsblk -d 确认对应的物理设备名,再通过 cat 查看这个路径下的内容,方括号里的那一项,就是当前实际生效的配置。至于 NVMe 设备显示 [none],这属于正常设计,本身就不应该强行改动。

查 /sys/block/设备名/queue/scheduler 是唯一可靠方式
Linux 没有全局“系统级”IO调度算法,每个块设备(如 sda、nvme0n1)独立配置,lsblk、df、dmesg 都不暴露调度器信息。必须直接读取 sysfs 接口:
- 先确认设备名:
lsblk -d或cat /proc/partitions,排除loop、dm-、zram等非物理设备 - 再查调度器:
cat /sys/block/sda/queue/scheduler(把sda替换为你的真实设备名) - 输出形如
[mq-deadline] kyber bfq none,方括号内就是当前生效项 - NVMe 设备(如
nvme0n1)常见输出是[none]——这不是错误,而是内核主动绕过软件调度层,此时写入其他调度器会失败
看到 [none] 就别硬改,尤其对 NVMe 设备
none 在现代内核里并不等于“没设置”,它表达的是一个很明确的意思:直接跳过 blk-mq 的软件调度,把队列处理交给 NVMe 控制器自己完成。要是强行写成 kyber 或 mq-deadline,结果通常只有两种:要么直接返回 Invalid argument,要么表面上写进去了,实际上静默失败。
- 验证是否为 NVMe:
lsblk -d | grep nvme或lspci | grep -i nvme - 若设备是 SATA SSD 却显示
[cfq]或[deadline],才值得考虑切换;若已是[mq-deadline]或[kyber],通常无需调整 - 部分旧驱动或 RAID 卡可能不支持
mq-deadline,写入后仍显示原值,说明内核拒绝了该设置
临时切换调度器:echo 写入 + root 权限
这个操作立即生效,但重启后还原。适合快速验证,但对根设备(如装系统的 sda)慎用,可能引发短暂卡顿:
- 必须用 root:
sudo sh -c 'echo kyber > /sys/block/sda/queue/scheduler' - 只能写入
cat输出中列出的选项,比如输出是[noop] mq-deadline,就不能写bfq - 写成功后再次
cat应看到方括号移位;若没变,说明设备不支持或权限不足 - 某些场景(如数据库压测前)可临时切到
mq-deadline,但别在生产环境反复切换
永久修改靠 GRUB 参数,不是配置文件
靠内核启动参数 elevator=xxx 实现,对所有块设备统一生效,无法按设备区分:
- 编辑
/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT行末加elevator=mq-deadline(空格分隔) - Debian/Ubuntu 执行:
sudo update-grub;RHEL/CentOS 执行:sudo grub2-mkconfig -o /boot/grub2/grub.cfg - 重启才生效;若启动失败,进 GRUB 编辑启动项,临时删掉
elevator=参数即可恢复 - 混用 HDD 和 SSD 时,这个全局参数会失效——此时得用 udev 规则按设备名精准设置,而不是依赖 GRUB
none 不是缺省值,而是设计选择;而 SATA SSD 用 mq-deadline 或 kyber 比 cfq 更稳,但改完必须用 iostat -x 1 观察 await 和 %util 才算真正落地。
作者最新文章
PDF转PPT在线教程:极轻PDF转换步骤与背景音乐添加指南
2026-09-02 18:58
红米RedmiNote13字体大小如何设置 红米RedmiNote13字体大小设置方法
2026-08-25 15:12
vivo Z5(6GB/128GB/全网通)忘了手机密码怎么办?
2026-08-25 14:07
老用户159元套餐不及新用户39元划算,媒体:通信行业提质升级仍在路上
2026-08-25 12:21
2026 最好用的 ORM 框架:xbatis 1.9.7 正式发布,基于 mybatis 的 ORM 框架
2026-08-25 10:29
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多

































