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

相关推荐

  • 四川大学科学技术奖励办法

    四川大学科学技术奖励办法 为鼓励广大科技工作者积极从事科学技术工作,推动科技创新和产业发展,四川大学制定了科学技术奖励办法。该办法自2016年12月1日起正式施行,旨在激励高校师生…

    联系我们 2024年12月3日
    11
  • 建筑项目管理软件哪个好

    建筑项目管理软件哪个好? 随着建筑行业的快速发展,建筑项目管理软件已经成为项目管理人员必备的工具之一。选择一款好的建筑项目管理软件可以帮助项目管理人员更好地管理项目,提高项目的效率…

    联系我们 2024年9月18日
    31
  • 5分钟,启动一场IoT低代码革命(低代码解决方案)

    开发一款App有多难? 据不完全统计,一个新手可能耗费4到5天时间,完成20到30个步骤,才能成功上架一款App。 在开发App之前,更重要的是想清楚为什么要开发这款软件,它的定位…

    联系我们 2024年5月14日
    131
  • 支部委员要求党龄三年以上

    支部委员要求党龄三年以上 作为一名支部委员,我深知自己的责任和使命。作为党的一名成员,我们必须始终坚持党的路线方针政策,不断提高自己的政治素养和工作能力,为党和人民的事业作出自己的…

    联系我们 2024年12月4日
    0
  • 开源OA协同办公系统源码

    开源OA协同办公系统源码 随着数字化时代的到来,企业越来越需要一种高效、协同的办公系统来提高工作效率和团队协作。开源OA协同办公系统作为一种新型办公系统,得到了越来越多的企业的关注…

    联系我们 2024年12月4日
    0
  • 上海市静安区闸北中心医院王伟民

    上海市静安区闸北中心医院王伟民:一位优秀的医生 王伟民,一位优秀的医生,上海市静安区闸北中心医院的医生。他有着丰富的经验和专业知识,为您提供最好的医疗服务。他一直致力于为病人提供优…

    联系我们 2024年12月1日
    7
  • 中央军委后勤保障部某管理中心探索基层党组织规范化建设路子(我军部队后勤组织体制建设)_1

    以规范强质效 靠创新谋发展 ■解放军报记者 孙兴维 张东盼 通讯员 崔铁振 “管理中心党委及分中心党委职责清单7项,党委常委会11项;中心及分中心党委书记职责清单5项、委员5项………

    联系我们 2023年5月31日
    197
  • 心理学博士后面上项目

    心理学博士后面上项目 心理学是一门研究人类思维,情感和行为的学科。随着科技的发展,心理学的应用范围也越来越广泛。在当今社会,心理学已经成为了一个非常重要的领域,对于人们的健康,幸福…

    联系我们 2024年12月4日
    0
  • 跨平台项目管理软件

    跨平台项目管理软件 随着云计算和移动设备的普及,跨平台项目管理软件变得越来越重要。这种软件能够帮助项目经理和开发人员更好地管理项目,提高效率,减少错误。 跨平台项目管理软件的特点包…

    联系我们 2024年9月18日
    28
  • 新安装电线杆需要风险评估

    新安装电线杆需要风险评估 随着现代通信事业的不断发展,电力传输也变得越来越重要。新安装电线杆成为了电力传输中不可或缺的一部分。但是,新安装电线杆的工作需要高度的安全措施,以避免任何…

    联系我们 2024年12月5日
    6