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

相关推荐

  • 科研验收是什么意思

    科研验收是指在某个科研领域中,完成一项特定任务后,由相关专家或机构对研究成果进行评估和验证的过程。在科学研究中,验收是一个重要的环节,它可以帮助我们确认研究成果是否符合预期,是否达…

    联系我们 2024年12月8日
    0
  • 项目管理工具是什么

    项目管理工具是什么? 项目管理是组织管理中非常重要的一环。通过使用项目管理工具,我们可以更有效地管理项目,提高项目完成的效率和质量。本文将介绍一些常见的项目管理工具,包括项目计划工…

    联系我们 2024年9月20日
    100
  • 项目技术水平评价怎么写

    项目技术水平评价是评估一个项目团队或个人技术水平的重要指标。在进行评价时,需要综合考虑项目的完成情况,技术实现难度,技术实现的质量和效果,以及项目团队的整体技术水平等因素。 以下是…

    联系我们 2024年12月10日
    8
  • 软件质量管理工作内容

    软件质量管理工作内容 随着信息技术的不断发展,软件成为了现代社会不可或缺的一部分。软件的质量对于企业的生存和发展至关重要。软件质量管理是指通过建立完善的软件质量体系,对软件产品进行…

    联系我们 2024年12月10日
    0
  • 【组工讲堂】基层组织工作常用文件(党的基层组织工作常用文件选编)

    为满足同志们的需求,方便广大基层党员干部、基层组织学习研究党的基层组织建设政策理论,指导推动基层党建工作,特搜集整理基层组织工作常用文件,希望可以帮助到大家。   ★这么多文件,如…

    联系我们 2023年2月23日
    334
  • 下拉神器64xl平台IDR

    标题:使用以下拉神器 64xl 平台IDR 进行数据分析 作者:XXX 近年来,数据分析已经成为了商业和科学领域不可或缺的一部分。通过分析数据,我们可以更好地了解客户需求,优化产品…

    联系我们 2024年12月1日
    2
  • 牛刀paas

    牛刀paas:用paas技术让软件开发更加高效和快速 随着云计算和容器化技术的不断发展,paas(平台即应用)成为了软件开发中不可或缺的一部分。paas技术可以让开发者轻松地构建、…

    联系我们 2024年12月5日
    0
  • 醴陵市赖洪党工委书记简介

    醴陵市赖洪党工委书记简介 赖洪党工委书记是醴陵市的一位杰出领导,他出生于1957年,是一位有着丰富工作经验和卓越领导才能的官员。自2000年担任醴陵市委书记以来,他一直领导着醴陵市…

    联系我们 2024年12月10日
    2
  • 每日必读环保宣言 把网址复制到浏览器登陆或微信直接登录 GEC国际

    每日必读环保宣言 我们,作为人类的一份子,必须认识到我们对环境的责任。环保是我们每个人都应该关注的问题,因为环境问题将会对我们的未来产生深远的影响。 我们的责任是保护我们的地球,让…

    联系我们 2024年12月4日
    0
  • 四川大学 张云

    四川大学是中国著名的综合性大学之一,历史悠久,文化底蕴深厚。在四川大学的校园里,有一位名叫张云的教授,他是中国著名的历史学家,也是四川大学的知名学者之一。 张云教授出生于1950年…

    联系我们 2024年12月2日
    3