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月6日
    15
  • 用友u8固定资产模块操作手册

    用友U8固定资产模块操作手册 用友U8固定资产模块是用友ERP-8.5中的一个重要模块,用于管理固定资产。本操作手册提供了对用友U8固定资产模块的详细操作指导和帮助,旨在帮助用户更…

    联系我们 2024年12月6日
    7
  • 项目管理工具 免费

    项目管理工具免费 随着现代项目的日益增多,项目管理工具成为了项目管理者不可或缺的一部分。这些工具可以帮助项目管理者更好地协调项目进展,提高项目的效率和质量。然而,目前市面上的项目管…

    联系我们 2024年9月21日
    98
  • 土基熔盐核反应堆

    土基熔盐核反应堆是一种新型的核反应堆,它采用土基结构,利用熔盐作为燃料,并利用核能进行加热,产生热能来产生电力。这种反应堆不仅具有环保、节能、安全等优点,而且具有广泛的应用前景。 …

    联系我们 2024年12月3日
    15
  • 美国自然科学基金技术成熟度

    美国自然科学基金技术成熟度 近年来,美国自然科学基金(National Science Foundation,简称NSF)在推动科学技术发展方面发挥了重要作用。NSF是由美国政府出…

    联系我们 2024年12月8日
    0
  • 科研项目联系人和项目负责人的区别

    科研项目联系人和项目负责人的区别是什么? 科研项目联系人和项目负责人都是负责项目管理的重要角色。两者的区别在于: 1. 角色不同:科研项目联系人主要负责协调和沟通项目各方面的事宜,…

    联系我们 2024年12月7日
    21
  • 自然资源局内控制度合同管理办法

    自然资源局内控制度合同管理办法 为加强自然资源管理,规范自然资源局内控制度合同管理工作,保障自然资源局内控制度的有效性和可行性,根据《中华人民共和国合同法》等相关法律法规,自然资源…

    联系我们 2024年12月9日
    1
  • 可视化项目管理软件

    可视化项目管理软件 随着现代信息技术的不断发展,项目管理软件已经成为项目管理中不可或缺的工具。然而,传统的项目管理软件往往以表格和文本的形式呈现,缺乏直观性和交互性,不利于管理人员…

    联系我们 2024年9月16日
    35
  • 工程项目管理软件哪个好用

    工程项目管理软件哪个好用? 在工程项目管理中,选择合适的软件至关重要。不同的软件适用于不同的项目类型和规模,因此选择最适合的软件需要考虑多个因素。本文将介绍一些常用的工程项目管理软…

    联系我们 2024年9月16日
    28
  • 产品项目管理工具

    产品项目管理工具 产品项目管理是产品开发过程中至关重要的一环。通过使用合适的工具,可以帮助团队更有效地协调工作,提高项目进度和质量。本文将介绍一些常用的产品项目管理工具,包括敏捷开…

    联系我们 2024年9月16日
    32