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

相关推荐

  • 科研项目采购报价单一般包含什么

    科研项目采购报价单一般包含以下内容: 1. 项目名称和项目描述:在采购报价单中必须包含项目名称和项目描述,以便采购人员能够理解项目的需求和范围。 2. 项目预算:在采购报价单中必须…

    联系我们 2024年12月8日
    0
  • 提高基于高频大数据精准动态监测预测预警水平

    摘要: 随着信息技术的不断发展,高频大数据技术在各个领域得到了广泛的应用。本文旨在探讨如何提高基于高频大数据精准动态监测预测预警水平。首先介绍了基于高频大数据技术的相关原理和应用领…

    联系我们 2024年12月4日
    4
  • 企业 内控指南

    企业内控指南 内控是指组织内部制定、实施和控制某些活动的过程,旨在确保组织运营的安全性、合规性和可靠性。随着企业竞争的加剧和业务流程的复杂性增加,企业内控的重要性也越来越凸显。在本…

    联系我们 2024年12月1日
    1
  • 课题负责人调离原单位

    课题负责人调离原单位: 一个课题负责人的调离经历 近年来,随着市场经济的不断增长,许多企业开始追求更高的效率和更大的规模。在这样的背景下,许多企业的课题负责人也开始面临着一系列的挑…

    联系我们 2024年12月9日
    0
  • 建筑工程施工项目管理软件

    建筑工程施工项目管理软件 随着现代建筑行业的快速发展,建筑工程施工项目管理软件已经成为了一种非常重要的工具。这些软件可以帮助项目经理和施工团队更好地管理项目,提高生产效率和质量,减…

    联系我们 2024年9月16日
    40
  • 项目管理软件 pdca

    项目管理软件 pdca 是一种有效的项目管理方法,它通过重复执行计划、步骤和动作,确保项目能够按时完成,并达到预定的目标。在这篇文章中,我们将探讨 pdca 的基本原理,如何应用 …

    联系我们 2024年9月18日
    33
  • 2023国企改革展望(二)- 陈凯龙:党建本身就是国企的核心竞争力(国企改革发展党建)

    中国特色现代国有企业制度,“特”就特在把党的领导融入公司治理各环节,把企业党组织内嵌到公司治理结构之中,明确和落实党组织在公司法人治理结构中的法定地位。 2022年是决战国企改革三…

    联系我们 2023年2月23日
    256
  • 项目管理软件成都

    成都,这座位于中国西南地区的城市,一直以来都是项目管理领域的重要参与者。在这里,有许多公司和组织都在使用各种项目管理软件来提高工作效率和团队协作。今天,我将介绍一款成都本土的项目管…

    联系我们 2024年9月19日
    95
  • 中文项目管理工具

    中文项目管理工具 随着数字化时代的到来,项目管理已经成为企业运营中不可或缺的一部分。中文项目管理工具是一种能够协助中文用户进行项目管理的工具,它可以帮助中文用户高效地完成项目任务,…

    联系我们 2024年9月15日
    34
  • 全平台答题脚本

    全平台答题脚本 随着互联网的普及,人们越来越依赖于各种在线应用和平台。其中,全平台答题脚本成为了很多人喜爱的一种娱乐方式。全平台答题脚本不仅可以让人们挑战自己的智力,还可以带来乐趣…

    联系我们 2024年12月3日
    0