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年5月14日 上午8:08
下一篇 2024年5月14日 上午8:19

相关推荐

  • 课题 关键技术

    课题:关键技术 随着信息技术的不断发展,关键技术已经成为现代社会不可或缺的一部分。在科技日新月异的今天,掌握关键技术已经成为了企业成功的关键因素之一。本文将从多个方面探讨关键技术的…

    联系我们 5天前
    0
  • 项目中主要负责人对项目的贡献

    在项目中,主要负责人对项目的贡献是至关重要的。他们不仅是项目的领导人,还是项目的核心成员,对项目的成功与否有着至关重要的影响。本文将探讨主要负责人在项目中所做出的贡献,以及这些贡献…

    联系我们 4天前
    0
  • 科研项目经费测算依据及说明

    科研项目经费测算依据及说明 科研项目经费是支持科学研究和技术创新的重要资源。如何合理测算科研项目经费,确保科学研究的顺利开展,是科研项目管理中的一个重要问题。本文将介绍科研项目经费…

    联系我们 6天前
    2
  • 项目工时管理系统开源

    项目工时管理系统开源: 为项目管理带来更高效和便捷的工具 随着项目管理的日益复杂和数字化,项目工时管理系统已经成为项目管理中不可或缺的一部分。一个好的项目工时管理系统可以帮助项目经…

    联系我们 4天前
    0
  • 中央和国家机关会议管理办法规定

    中央和国家机关会议管理办法规定 为规范中央和国家机关会议管理,加强会议活动的监督和检查,保障会议的顺利进行,根据《中华人民共和国行政法》等相关法律法规,中央和国家机关会议管理办法于…

    联系我们 2024年12月1日
    1
  • 科学研究项目 基本观点怎么写

    科学研究项目的基本观点怎么写 科学研究项目的基本观点是指对某个科学研究项目的结论、发现或理论的理解、评价和阐述。一篇好的科学研究项目的基本观点应该清晰、简洁、有条理,并且能够清晰地…

    联系我们 2024年12月7日
    0
  • 退休党支部2024年度工作计划

    退休党支部2024年度工作计划 尊敬的领导、各位同事: 退休党支部2024年度工作计划已经在2023年12月31日得到审批,现在向大家汇报。 一、工作概述 退休党支部成立于2017…

    联系我们 4天前
    2
  • 项目完成时的技术指标和经济指标

    项目完成时的技术指标和经济指标是项目评估时的重要指标,能够帮助我们评估项目是否达到了预期的目标。在项目完成时,这些指标也应该被认真考虑,以便为未来的项目提供参考。 在项目的开始阶段…

    联系我们 4天前
    1
  • 赵景根

    赵景根:一个充满争议的人物 赵景根,一个出生在中国山东的普通人,但他的人生却充满了争议。在他年轻的时候,他是一名优秀的运动员,曾在国内外多次获得冠军。然而,在他还是一名年轻人的时候…

    联系我们 4天前
    0
  • 李丰银 中国科学技术大学

    李丰银,中国科学技术大学 李丰银,是一位来自中国科学技术大学的年轻人。他毕业于该校的计算机科学与技术专业,并在该校的人工智能实验室获得了博士学位。 李丰银的职业生涯始于人工智能领域…

    联系我们 2024年12月5日
    0