首页/系统/Linux 内核与性能调优速查/设备类型确认(rotational)

设备类型确认(rotational)

/sys/block/<dev>/queue/rotational 标记设备是否旋转(1 机械、0 SSD/虚拟);调度器与预读策略常按它选择。

rotational 标志是什么

Linux 用 /sys/block/<dev>/queue/rotational 标记块设备是否为旋转介质:1 表示机械盘,0 表示 SSD 或虚拟盘。内核与调优工具会据此选择默认调度策略与预读参数,部分监控系统也用它区分设备类型。正因为下游有这么长的策略链,这个标志被误报时造成的错配也会成串出现。

基本信息

查看单盘cat /sys/block/sda/queue/rotational
批量查看lsblk -d -o NAME,ROTA,SIZE,MODEL
取值含义1 旋转介质(HDD),0 非旋转(SSD 或虚拟盘)
可写性接口可写但仅影响运行时,重启后由驱动重新上报
相邻参数/sys/block/<dev>/queue/ 下的 scheduler、read_ahead_kb 等

典型使用场景

  • 选择调度策略:机械盘倾向 mq-deadline,NVMe 用 none,脚本按类型套用
  • 预读参数调优:机械盘提高 read_ahead_kb 收益明显,SSD 上收益有限
  • 监控分类:采集时标记设备类型,避免两类设备混在一起做基线
  • 虚拟化排障:确认 virtio、云盘上报的类型是否符合预期
  • 资产巡检:批量输出机器上所有设备的介质类型,形成台账

查看与验证

查看与验证
cat /sys/block/sda/queue/rotational   # 1 机械盘,0 SSD 或虚拟盘
lsblk -d -o NAME,ROTA,SIZE,MODEL      # 批量列出类型、容量与型号
cat /sys/block/sda/queue/scheduler    # 顺带确认当前调度器
nvme list                             # NVMe 设备用 nvme-cli 核对型号

异常上报对照

现象可能原因处理
virtio 盘显示 ROTA=1虚拟化层上报为旋转设备按实际介质手工套用参数,别全靠该标志
同机型部分盘为 0 部分为 1混插 SSD 与 HDD按盘分别设定调度策略与监控基线
ROTA 与型号规格矛盾驱动或固件上报不准以型号规格书为准,并留存记录
该接口普通用户可读,写入需要 root 权限;通过 sysfs 手工修改只作用于当次运行,重启后驱动会重新上报真实值,要持久生效应写 udev 规则。
遇到 ROTA 与型号规格矛盾时以规格书为准:调度与预读策略一旦按错误类型下发,往往要在压力上来之后才暴露问题,排查成本远高于当初核对型号这一步。

易错点

  • 盲信 ROTA 取值:virtio 与部分 RAID 卡虚拟出的盘常上报为 1,据此套用机械盘参数会得到抑制并发的调度策略
  • 用 ROTA 判断性能等级:它只说明是否旋转介质,与 IOPS、延迟无关
  • 手工写 sysfs 却不做 udev 持久化,重启后策略静默失效且无人察觉
  • 把分区路径当设备路径:/sys/block 下是整盘,分区在 /sys/block/sda/sda1 这类子目录

数据来源与参考

  • Linux 内核 Documentation/block/queue-sysfs.rst
  • util-linux 文档 lsblk(8)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌