首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linux完全公平调度器与sched_latency_ns

Linux完全公平调度器与sched_latency_ns
EN

Unix & Linux用户
提问于 2020-05-02 16:50:18
回答 1查看 916关注 0票数 2

我以为我理解CFS但是..。

计划延迟是指每个可运行的进程都可以期望获得处理器份额的时间。在Linux内核代码中,它提供:

(默认值: 6ms * (1 + ilog(ncpus)),单位:纳秒)

对于一台cpu机器来说,它是6毫秒,对于一台4核心机器是18毫秒。我在Rpi零一核和Rpi 4四核上进行了检查,情况似乎是这样的。然而,具有四个核的Pi 4是一台比零更强大的机器,您肯定会期望调度延迟会更小,而不是三倍大?看看sched_min_granularity,在这两种情况下,它们都处理8个任务,然后返回到一个固定的时间片段0.75ms和2.25ms。很明显我在这件事上.

EN

回答 1

Unix & Linux用户

发布于 2020-05-05 09:01:14

当然,您可以预期调度延迟会更小,而不是三倍大。

这就是为什么用_NONE,_LOG来“纠正”它的原因。或_LINEAR.

当您将SMP看作是拆分而不是添加CPU时,SMP的概念也是有效的。这样你就不会获得整体的性能,但仍然有更好的响应能力。

这个短函数(“周期”)同时使用min_granularity和延迟。我改了一点。我不认为你需要了解任何关于C语言的知识--甚至有一个不太可能的暗示:

代码语言:javascript
运行
复制
static u64 __sched_period(unsigned long nr_running)
{
    if (unlikely(nr_running > sched_nr_latency))

        return   nr_running * sysctl_sched_min_granularity;
    else
        return                sysctl_sched_latency;
}

最后,它更多的是关于这个词,而不是这个东西:维基百科,CFS:

...the原子单元,通过它分配单个进程的CPU份额(从而使以前的时间概念变得多余)

这个多余的词仍然存在于kernel/sched/fair.c中:

代码语言:javascript
运行
复制
 * (to see the precise effective timeslice length of your workload,
 *  run vmstat and monitor the context-switches (cs) field)

值6ms,0.75ms (=1/8)和24 as (= _LOG-校正为ncpus=8)可以被解释为周期,即时间。如果将其转换为赫兹,则它与Kconfig.hz范围相匹配,该范围为100 it (服务器)到1000 it (高响应度)。

代码语言:javascript
运行
复制
1/.00075 s
1333.3 Hz

超过一千分钟-粒度-“切片”适合在一秒钟。

代码语言:javascript
运行
复制
1/.006 s
166.6 Hz

166条未校正的延迟“片”位于100 the“服务器”和250 the“妥协”之间。

代码语言:javascript
运行
复制
1/.024 s
41.6 Hz

通过对8个核的日志校正,每个核都可以通过因子4减少上下文切换,但“有效延迟”仍然很低。

把它比作理发店,在那里你要保证新顾客不需要等待超过10分钟。这意味着你必须每10分钟在座位上抢占你现在的顾客。至少要花点时间打个招呼。

一家有四个座位和理发师的商店可以减少10分钟的费用.有四个理发师在一个橱柜里工作,他们只需要每40分钟停下来看一次,新进入的顾客平均只需要等待10分钟。

这将是完全的,“线性”的延迟校正:乘以N。

但在最坏的情况下,这四家公司同时检查新客户--因为他们同时开始。如果一位顾客在一分钟后进入,他可能要等39分钟才能得到服务。

因此,作为妥协,你不是用N,而是用log(N)。

1 + ilog(N)

这给出了1+ilog(4) = 1+2,所以这4个理发师可以将他们的切片从10分钟延长到30分钟(而不是40分钟)。它们一起达到10分钟的延迟时间。

四倍到16,只有50分钟。“修正”是对数的,并且有这个+ 1

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/584024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档