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年7月8日 下午1:27
下一篇 2024年7月8日 下午1:39

相关推荐

  • 工程项目管理智慧化

    工程项目管理智慧化 工程项目管理是项目管理的重要组成部分,其目的是通过运用现代信息技术和技术手段,提高项目管理的效率和精度,从而确保项目的成功交付和高质量的成果。随着信息技术的不断…

    科研百科 2025年1月7日
    0
  • 科研产业化的定价策略

    科研产业化的定价策略科研产业化的定价策略对于考生和家长来说,如何做一个科学的分类,那就是保持理性,根据情况来选材,就可以选择更合适的就业方向。对于孩子来说,多读书,多报班,就能增加…

    科研百科 2024年11月26日
    0
  • 内蒙古跨境电商业务开启条码管理模式(内蒙古跨境电商平台)

    2月10日凌晨1时5分,一件“面包福特加”商品在赤峰全球购平台成功下单,被满洲里海关所属赤峰海关系统放行后,从赤峰保税物流中心发出。与以往不同的是,此单商品的订单信息中包含了该商品…

    科研百科 2024年7月9日
    37
  • 工程项目信息管理系统包括哪些(工程项目信息管理系统)

    工程项目信息管理系统 随着现代项目管理的日益复杂,工程项目信息管理系统已经成为了项目管理中不可或缺的一部分。一个好的信息管理系统可以帮助项目管理人员更好地管理项目信息,提高项目效率…

    科研百科 2024年6月6日
    97
  • 横道图生成软件

    横道图生成软件:用想象力创造有趣的横道图 近年来,横道图生成软件已经成为了一种非常流行的工具,可以用来快速轻松地创建各种有趣的横道图。这些软件可以帮助用户以非常简单的方式创建复杂的…

    科研百科 2024年12月2日
    0
  • 雄迈vms电脑版使用

    雄迈VMS电脑版使用指南 VMS(Virtual Machine Server)是一款用于虚拟机的软件,可用于创建,管理和运行虚拟机。VMS电脑版是VMS的一个在线版本,可以在家中…

    科研百科 2024年10月14日
    12
  • 湖北宜昌烟草:“两员”社区挂职 筑堡强基赋能

    荆楚网(湖北日报网)讯(通讯员 毛婧)为深入贯彻习近平总书记重要讲话精神、湖北省委“下基层察民情解民忧暖民心”实践活动要求和宜昌市委“筑堡工程”工作要求,宜昌市烟草专卖局(公司)把…

    科研百科 2023年1月11日
    188
  • 推荐1本完结小说,主角开局获得万界交易系统,从此货行诸天万界

    《史上最强店主》 作者 南极烈日 状态 已完结 字数 445万字左右 类型:诸天无限流、轻松、爽文、脑洞、系统。 一本主角在诸天万界开店的小说…… 好吧说是…

    科研百科 2023年4月22日
    369
  • 科研项目 延期开展的原因

    科研项目延期开展的原因 科研项目的延期开展是研究人员和项目管理人员都会面临的情况。延期的原因有很多,其中一些可能涉及到项目管理、研究计划、资源限制、技术难题、经济压力等方面。以下是…

    科研百科 2024年12月2日
    37
  • 医学类科研项目有哪些项目名称呢(医学类科研项目有哪些项目名称)

    医学类科研项目有哪些项目名称 随着现代医学的发展,医学类科研项目的项目名称也在不断更新和扩展。以下是一些常见的医学类科研项目项目名称: 1. 基因编辑技术:通过基因编辑技术,可以更…

    科研百科 2024年4月10日
    287