问题标签 [cfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
33 浏览

linux-kernel - 如何修改特定任务组的 vruntime

感谢您花时间阅读我的问题。我将继续进行一些假设,所以如果我说的事实不正确,请纠正我。

在函数pick_next_task_fair()中,通常要选择的下一个任务组是包含与min_vruntime值关联的任务的任务组。cfs_rq我想改为手动干预,并将所需的任务组放在它所属的最左侧,只是为了探索它的效果。

所以我的主要问题是:

  1. 可以只修改任务组的 CPU 份额吗?相同的标准是否也适用于 cgroup?
  2. 如果修改 CPU 份额不会使我达到我想要的目标,我需要做什么?

到目前为止,对于第二个问题,我有以下步骤:

  1. 识别感兴趣的任务组的调度实体,以及它所属的 CFS_RQ。
  2. 将该任务组的值更改为min_vruntime低于 CFS RQ 中当前最低值的值。
  3. 将其插入 CFS_RQ 的最左侧
  4. 再次运行 __schedule()。

但我真的不知道我可以使用的工具。我熟悉内核模块和 eBPF,但仅限于数据收集、跟踪和修改网络流量领域。不确定他们如何(甚至是否)可以修改内核数据结构。

如果我必须修改调度程序,那就这样吧 xD。但我以前从未这样做过,所以我不知道从哪里开始,也不知道我需要修改多少个文件。

非常感谢我能得到的任何输入!再次感谢您的宝贵时间。

0 投票
1 回答
46 浏览

linux - 每个 CPU 内核是否都拥有 CFS 的红黑树?

CFS 调度程序使用红黑锁来保存要调度的进程,我不确定一个 CPU 内核是否存在全局树或一棵树?我认为后者更有效,但我找不到任何证据。

0 投票
0 回答
8 浏览

linux - ETL/ML 作业的 CFS 调度

我有一个 64 核 CPU 。我运行 2 Jobs 一个多线程 Java 应用程序和一个单线程 Python 应用程序。CPU 看起来没有得到充分利用。有没有办法为java应用程序分配专用内核

谢谢

0 投票
1 回答
29 浏览

kubernetes - Kubernetes CPU 配额和进程调度行为

给定一个 Pod 定义了一个运行单线程应用程序的容器,并且 CPU 限制值为1

单线程应用程序会受到 CPU 限制吗?

将 CPU 限制值增加到高于1提供任何性能优势吗?

(这是假设容器只有 1 个活动线程正在运行)

0 投票
0 回答
25 浏览

linux - 更改 CFS 调度程序变量

今天我想更改 CFS 调度程序的时间片,所以,我决定更改以下变量(参数):

kernel.sched_min_granularity_ns

kernel.sched_wakeup_granularity_ns

kernel.sched_latency_ns

现在,在我的 ZORIN 操作系统上,我可以看到这些变量正在使用sysctl -A | grep shced,因此我可以更改它,因为这些文件在中可用/proc/sys/kernel但是,在我ubuntu 20.04的 中,没有这样的文件!因此,我无法创建或更改这些参数。

我的问题是,如何更改这些参数ubuntu 20.04,为什么这些参数不可用?