首页/系统/Linux 运维命令速查/ionice 调整磁盘 IO 优先级
进程与作业69 条

ionice 调整磁盘 IO 优先级

控制进程的 IO 调度类与优先级:-c2 -n7 尽力而为最低、-c3 空闲级(只在磁盘空闲时干活),备份任务友好。

Linux 运维命令速查系统更新于 2026-10-13

ionice 调整 IO 优先级

ionice 属于 util-linux,用来设置进程的磁盘 IO 调度类与优先级,让备份、压缩这类重 IO 任务在磁盘忙于业务时自动让路。它和 nice 分工不同:nice 调的是 CPU 时间片权重,ionice 管的是块设备请求的排队与优先级,两者配合才能同时压低 CPU 与 IO 抢占。

基本信息

适用平台Linux(util-linux);效果依赖 IO 调度器
语法ionice [-c 类别] [-n 级别] [-p PID] [-P PGID] [-u UID] [命令]
调度类1 realtime、2 best-effort(缺省)、3 idle
级别范围best-effort 下 0 最高、7 最低

典型使用场景

  • 夜间备份与业务共盘时,让备份在空闲级运行
  • 大量日志压缩任务压低 IO 优先级,避免业务请求延迟抖动
  • 给某个失控进程降级救火(来不及重启时)
  • 验证磁盘上是否是 IO 抢占导致的服务变慢
  • 配合 nice 一起限制批处理作业的资源占用

常用示例

常用示例
ionice -c3 tar czf backup.tgz /data      # 空闲级打包:只在磁盘不忙时干活
ionice -c2 -n7 -p 1234                   # 运行中的进程降到 IO 最低档
ionice -c2 -n0 -p 1234                   # 需要提速时提高该进程 IO 优先级
ionice -p 1234                           # 查看某个进程当前的 IO 调度设置
nice -n10 ionice -c3 rsync -a /data /backup   # CPU 与 IO 双重降级
ionice -c3 dd if=/dev/zero of=/tmp/big bs=1M count=200  # 造压力并观察影响

调度类读法

类别说明典型用法
-c1 realtime最高优先级,进程几乎抢占式访问磁盘基本不用于生产,容易把整机拖慢
-c2 best-effort缺省级别,用 -n0 到 -n7 调高低-n7 降低备份影响,-n0 给关键进程让路
-c3 idle只在设备空闲时获得 IO 时间片备份、索引、压缩等后台任务首选
继承行为子进程默认继承父进程的调度设置包装脚本时注意整条进程链都会受影响
效果取决于 IO 调度器与内核版本:老内核的 CFQ 对 ionice 支持最好,blk-mq 与 NVMe 场景下 systemd 的 IOWeight、cgroup v2 的 io.max 更可靠。
ionice 只影响进程自己发起的 IO,内核写回、日志刷盘等后台行为不受它控制,因此不能指望它完全消除磁盘争抢。

验证与搭配

  • 用 ionice -p PID 回读设置,确认确实生效而不是静默失败
  • 配合 iostat 的 await 与 util 观察业务盘延迟是否真的下降
  • 与 nice 组合使用:一个压 CPU 权重,一个压 IO 排队顺序
  • 批量任务包装成脚本时,把 ionice 写在命令最前面,让子进程一并继承
  • systemd 托管的服务不用包装命令,直接用 IOWeight 与 CPUWeight 在单元里声明
ionice 表达的是同一设备上不同进程之间的相对顺序,不限制进程的绝对 IO 带宽;要卡上限得用 cgroup v2 的 io.max 或 systemd 的 IOReadBandwidthMax 一类设置。

易错点

  • 在新内核或 NVMe 上默认调度器对 ionice 响应有限,验收要实测延迟而不是只看设置是否生效
  • -c1 realtime 会抢占式占用磁盘,可能让整机响应变慢,生产环境基本不要用
  • 把 ionice 当成 CPU 优先级工具:它不限制 CPU 占用,CPU 侧要另用 nice 或 cgroup
  • 对已在跑的进程用 -p 调整时权限不足会静默不生效(查看结果仍显示默认值),需要相应权限

数据来源与参考

  • man 1 ionice(util-linux 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌