gpt4 book ai didi

linux - CFS 调度程序 : change vruntime of task to slow it down

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:54 25 4
gpt4 key购买 nike

我想针对特定进程 ID(将在运行时由 sysctl 或/proc 文件系统定义)vruntime(任务运行的时间量和红色索引)修改 cfs cfs 的黑树)被人为扩充,因此 cfs 认为该进程已经运行了很长时间,而实际上它已经运行了一半时间..

我想达到这样的目标,即必须使用通常每个 CPU 使用 50% 的相同进程,并让它们使用例如 10% 和 90%...

想法?直接去编辑vruntime的话红黑树就乱了,sched_entity中的task的vruntime应该用什么函数来调整呢?

最佳答案

你不需要在内核中这样做。(你的最终目标不是欺骗cfs)。如果我理解,您需要使特定进程以较低的 CPU 使用率运行。

  1. 您可以启动具有较低调度优先级的特定进程。

    nice -n 10 your_process 参数

    您可以输入“man nice”以获取更多信息

  2. 如果可以更改特定进程的代码,可以在代码中使用nice()。您也可以输入 man 2 nice 以获取更多信息

  3. 可以使用cgroup/cpu来实现。

    mount -t cgroup -ocpu cgroup/cgroup

    然后使用它。

我建议第一个。

最后,如果您坚持使用内核,您可以尝试使用 __dequeue_entity() 使实体出列并更改 vruntime,然后使用 __enqueue_entity() 将其插入回来。这只是一个提示,可能是错误的,没有人喜欢suck hack,这不是我的答案。

关于linux - CFS 调度程序 : change vruntime of task to slow it down,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10815839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com