10 行代码玩转弹性调度的小把戏(弹性调班什么意思)

0

作者 | dog250

责编 | 唐小引

头图 | CSDN 下载自东方 IC

出品 | CSDN

Linux 的进程调度器是通用的调度器,无论是 O(n)O(n),O(1)O(1),还是 CFS,均是基于统一的指标来对待所有进程的。也就是说,进程甚至无法自主退让。

只要确定了一个进程的优先级,无论是是什么调度算法,该进程的地位总是不会变化,如果能做到下面的策略就好了:

  • 系统中进程多了,就加速退让。

  • 系统中进程少了,就加速抢占。

  • 工人来了,就退让。

  • 经理来了,就抢占。

  • ……

考虑一个进程 A 在一个特定的系统中运行,它最多只能用 40%的 CPU,此时,如果有另外的待运行进程,那么这些进程自然分摊另外 60%的 CPU,如果再来一个进程 A 呢?显然,两个进程 A 的 CPU 时间均会减少。

能不能保证两个进程 A 仍然分别使用 40%的 CPU,然后其它进程分摊剩余 20%的 CPU 呢?很难!

你可能说可以配 group 啊,但是这必须有一个静态的配置过程,很难动态自适应。

换句话说,Linux 的调度器是非弹性的

下面的代码展示了一个简单的弹性调度:

#!/usr/local/bin/stap -g

probe kernel.function(\"__enqueue_entity\")
{
task = _task_of($se)
pid = @cast(task, \"struct task_struct\")->pid
if ($1 == pid) {
_nr = $cfs_rq->nr_running
t = $se->vruntime;
$se->vruntime = t 3000000*(_nr - 1)
}
}

意思是指定进程根据系统中负载的数量来退让:

  • 系统负载越高,指定进程占有 CPU 时间比例越低。

  • 系统负载越低,指定进程占有 CPU 时间比例越高。

来来来,看效果:

0

可以看到:

  • 当只有一个 loop 的时候,它占用 100%的 CPU。

  • 当再生一个 loop 的时候,它几乎和第一个 loop 平分 CPU。

  • 当越来越多的 loop 运行的时候,第一个 loop 的 CPU 份额逐渐降低。

  • 本是同根生,只有第一个 loop 被弹性了。

嗯,效果还行,但不够平滑。试试二次曲线, or 三次曲线?

$se->vruntime = t 200*(_nr - 1)*_nr*_nr
// or
// $se->vruntime = t 20000*(_nr - 1)*_nr

200 何来?调一手好参数是必要的。

此外,我这里弹性策略过于单一,其实是可以设计的足够复杂的,比如针对特定进程的特定策略,即便是简单的双斜率直线段,也比我这个 OK,是吧,不多说。

有人问,如何找到要修改的代码在哪里,只要对 Linux 内核的执行原理足够熟悉,这并不难,对于手艺人而言,阿基米德,鲁班,庖丁,黄道婆这些人的地位是堪比欧几里得,笛卡尔的。

原文链接:https://blog.csdn.net/dog250/article/details/108281228

00

0

点分享

00

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年7月8日 下午1:27
下一篇 2024年7月8日 下午1:39

相关推荐

  • 建设工程项目合同管理

    建设工程项目合同管理 随着建筑行业的快速发展,建设工程项目合同管理已成为确保项目成功实施的关键因素。合同管理对于项目的成功实施至关重要,因为它涉及到项目进度、成本、质量、风险等方面…

    科研百科 2025年1月8日
    0
  • 商贸公司业务流程管理规定

    商贸公司业务流程管理规定 商贸公司是企业开展业务的重要方式,为了规范商贸公司的业务流程,提高企业的效率和服务质量,制定本管理规定。 一、公司组织结构 商贸公司应设立董事会、总经理办…

    科研百科 2024年5月25日
    105
  • 大学科研项目劳务费

    大学科研项目劳务费 近年来,随着科技的飞速发展,越来越多的大学开始重视科研项目的质量和效率。作为科研项目的重要组成部分,劳务费成为了学术界的一个热门话题。 劳务费是指研究人员在项目…

    科研百科 2024年12月6日
    1
  • 应聘新工程项目资料员,怎么说,对项目经理的话

    尊敬的项目经理: 感谢您给我这个机会,让我参加贵公司的新工程项目资料员应聘。我非常感谢您对我的信任,并且希望能够成为贵公司的一份子,为这个项目的成功做出贡献。 作为一名资料员,我希…

    科研百科 2024年12月7日
    0
  • 《党政机关公文格式》电子版

    《党政机关公文格式》电子版 随着国家政治经济的不断发展,党政机关公文格式也越来越受到重视。党政机关公文格式是保证公文质量、提高工作效率、维护国家利益的重要手段。《党政机关公文格式》…

    科研百科 2024年10月5日
    24
  • 初中生的“福音”来了,预计下半年全面实行,家长终于把它盼来了

    在学生和家长的眼中,一直都觉得高考才是一次重大的考试,认为考什么样的大学未来就就会有什么样的出路,但是别忘了,在高考之前,还有一次同等重要的考试:中考。 在五五分流政策下,如果学生…

    科研百科 2023年4月21日
    222
  • 施工进度计划表格

    施工进度计划表格 施工进度计划表格是一个重要的工具,可以帮助项目经理和工程师跟踪项目的进度,确保项目按时完成。一个好的施工进度计划表格应该具有灵活性和可管理性,能够适应项目中的变化…

    科研百科 2024年9月24日
    25
  • 瑜伽馆都在用的会员管理系统(瑜伽馆会员管理系统软件)

    瑜伽行业面临着越来越多的企业管理挑战。会员管理已经成为企业发展最重要的一环,如何有效管理会员成为瑜伽馆运营中需要解决的重要问题。 瑜伽馆会员管理系统是专门针对瑜伽馆会员管理需求而设…

    科研百科 2024年4月23日
    83
  • 智慧纪检-纪检案件卷宗管理系统简介(纪检案件卷宗管理办法)

    纪检案件卷宗管理系统是一种用于管理纪检案件卷宗的软件系统,它可以帮助纪检机关更好地管理案件,提高工作效率。纪检案件卷宗管理系统具有以下功能: 1.卷宗管理:可以对纪检案件卷宗进行管…

    科研百科 2024年4月23日
    97
  • 经纬国际大厦联合党支部书记

    经纬国际大厦联合党支部书记: 为建设和谐社区而努力奋斗 尊敬的社区居民们: 大家好!我是经纬国际大厦联合党支部书记XXX。今天,我谨代表我们联合党支部书记团队,向大家致以诚挚的问候…

    科研百科 2024年10月29日
    0