章工运维 章工运维
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)

章工运维

业精于勤,荒于嬉
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)
  • linux

    • rsync

      • rsync用法及参数详解
      • rsync服务实现推送,拉取
    • dns

    • sed、awk、grep、find四剑客

    • LVM管理
    • sudo权限规划
    • linux修改网卡为eth0的两种方法
    • Logrotate入门了解及生产实践
    • linux中用dd命令来测试硬盘读写速度
    • linux 阿里云盘挂载错误
    • CentOS7安装Android SDK
    • centos7安装更新git
    • linux启动顺序
    • centos7升级openssl
    • expect工具的安装和使用方法
    • linux下使用v2ray
    • centos7安装java环境的两种方式
    • linux-centos7系统设置时区及同步时间
    • rsyslog日志系统:rsyslog配置文件
    • rsyslog的安装、使用、详解
    • safe-rm防止删除重要的文件
    • linux如何获取打开文件和文件描述符数量
    • LVS集群-DR模式
    • linux服务器安装ffmpeg
    • linux服务器安装samba
    • 使用openssl创建自签发证书
    • linux服务器部署next.js服务
    • linux服务器ionice命令使用方式
      • linux服务器curl命令常用操作
    • windows

    • 中间件

    • 网络

    • 安全

    • 存储

    • 防火墙

    • 数据库

    • 系统

    • docker

    • other

    • 监控

    • 运维
    • linux
    章工运维
    2024-12-24
    目录

    linux服务器ionice命令使用方式

    ionice 是 Linux 下的一条命令,用于设置进程的 I/O 调度优先级(I/O 优先级)。这在磁盘 I/O 密集型环境中非常有用,能帮助控制不同任务对磁盘的访问权重。

    # 基本语法

    ionice [选项] [命令 [参数]]
    
    1

    # I/O 优先级类型

    ionice 主要有三种 I/O 调度优先级类型(Class):

    1. Idle(空闲类):

      • 仅当没有其他进程正在进行 I/O 操作时才执行。
      • 用于不会影响其他进程的非紧急任务。
      • 类别值为 3。
    2. Best-Effort(尽力而为类):

      • 默认优先级。
      • 提供基于优先级(0-7)的调度,数字越低优先级越高。
      • 类别值为 2。
      • 默认优先级是 4。
    3. Real-Time(实时类):

      • 对 I/O 的访问优先于任何其他进程。
      • 适用于对 I/O 延迟非常敏感的任务。
      • 类别值为 1。
      • 警告: 滥用实时类可能会导致系统其他任务饿死。

    # 常用选项

    • -c CLASS 或 --class CLASS:指定 I/O 优先级类别(1=Real-Time, 2=Best-Effort, 3=Idle)。
    • -n PRIORITY 或 --classdata PRIORITY:指定优先级级别(0-7,仅适用于 Best-Effort 和 Real-Time 类别)。
    • -p PID 或 --pid=PID:修改已有进程的 I/O 优先级。

    # 示例

    # 运行命令时设置 I/O 优先级

    1. 以最低优先级运行任务:

      ionice -c 3 tar -czf archive.tar.gz large_folder/
      
      1
    2. 以实时优先级运行任务:

      ionice -c 1 -n 0 dd if=/dev/zero of=/dev/sdX bs=1M count=1000
      
      1
    3. 设置尽力而为优先级:

      ionice -c 2 -n 2 rsync -a source/ destination/
      
      1

    # 修改已有进程的 I/O 优先级

    1. 将某个进程设为空闲类:

      ionice -c 3 -p 1234
      
      1
    2. 将某个进程设为实时类,最高优先级:

      ionice -c 1 -n 0 -p 5678
      
      1

    # 查看进程的 I/O 优先级

    使用 ionice 命令查看进程的当前 I/O 优先级:

    ionice -p <PID>
    
    1

    # 注意事项

    1. 只有管理员(root)才能将进程的优先级设置为 Real-Time 类别。
    2. 滥用高优先级(例如 Real-Time 类别)可能导致其他进程饿死,需谨慎操作。
    3. 调度优先级的实际效果取决于内核版本和 I/O 调度器(如 CFQ、BFQ 等)。某些调度器可能不支持所有 ionice 功能。

    通过合理使用 ionice,可以有效管理 Linux 系统的磁盘 I/O 资源分配,从而优化整体性能。

    # 实操

    找到docker应用进程的pid

    docker inspect -f '{{.State.Pid}}' <container_name_or_id>
    
    
    1
    2

    执行io优先级设置,设置尽力而为优先级

    ionice -c 2 -p 2103
    
    1
    微信 支付宝
    上次更新: 2024/12/24, 12:22:26

    ← linux服务器部署next.js服务 linux服务器curl命令常用操作→

    最近更新
    01
    shell脚本模块集合
    05-13
    02
    生活小技巧(认知版)
    04-29
    03
    生活小技巧(防骗版)
    04-29
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 | 点击查看十年之约 | 鄂ICP备2024072800号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式