前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux 系统调度器(四) -- 利用 chrt 命令查询与修改进程调度器

linux 系统调度器(四) -- 利用 chrt 命令查询与修改进程调度器

作者头像
用户3147702
发布2022-09-23 08:30:54
3.9K0
发布2022-09-23 08:30:54
举报

1. 引言

上一篇文章中,我们介绍了 linux 调度器的演进:

linux 进程调度器(下) -- 调度器演进

在上一篇文章中,我们知道,到 Linux 2.6.23 版本后,linux 实际上维护了一组调度器来实现不同的调度需要,它们被分为了四层:

  1. DL 调度器:采用 sched_deadline 策略;
  2. RT 调度器:采用 sched_rr 和 sched_fifo 策略;
  3. CFS 调度器:采用 sched_normal 和 sched_batch 策略;
  4. IDEL 调度器:采用 sched_idle 策略。

那么,我们怎么才能让我们的进程被不同层的调度器调度呢?那就需要使用 linux 提供的十分有用的工具 -- chrt 来实现了,本文我们就来介绍一下这个命令的使用。

2. chrt 命令的介绍

chrt 命令是 linux 提供的一个底层应用指令,它可以在运行时设置进程的某些属性,还可以更改调度策略和调度优先级。

它的使用方式是:

$ chrt [options] -p [priority] pid

看起来用法非常简单,chrt 最简单的使用方法是查询,这个场景下不需要传递 options 和 priority:

可以看到,该进程的 priority 是 0,调度策略是 SCHED_OTHER,也就是默认策略,由 CFS 调度器基于 SCHED_NORMAL 策略调度。

3. chrt help

通过 chrt --help 命令,就可以看到全部参数的说明:

实际上,这套说明已经是十分清晰了。

4. chrt 的 options

chrt 的 options 有五种选择,分别对应了上一篇文章中介绍的四层调度器的五个策略:

  1. SCHED_DEADLINE:仅供系统使用的 DL 调度器使用的策略,用户不能选择;
  2. SCHED_FIFO:使用 RT 调度器的 sched_fifo 策略,先入先出任务队列;
  3. SCHED_RR:使用 RT 调度器的 sched_rr 策略,采用轮询机制实现调度算法;
  4. SCHED_OTHER:使用 CFS 调度器的 sched_other 策略,使用默认的 time_sharing 计划算法;
  5. SCHED_BATCH:使用 CFS 调度器的 sched_batch 策略,采用批处理算法批量提交任务和执行;
  6. SCHED_IDLE:使用 IDLE 调度器的 sched_idle 策略。

5. chrt 的 priority

通过 chrt -m 命令,可以查看 chrt 不同的调度策略下,用户可选的优先级范围:

priority 就是能够在一定程度上影响调度优先级的 nice 值,尽管只有 SCHED_FIFO 和 SCHED_RR 两个调度器可以让我们去指定,因为 RT 调度器是采用传统的 O(1) 调度算法来实现的基于时间片调度的策略的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小脑斧科技博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 引言
  • 2. chrt 命令的介绍
  • 3. chrt help
  • 4. chrt 的 options
  • 5. chrt 的 priority
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档