【问题标题】:Trying to show CPU allocation changes using cgroup [closed]尝试使用 cgroup 显示 CPU 分配更改 [关闭]
【发布时间】:2018-10-13 17:48:45
【问题描述】:

我正在尝试按照以下指南显示 CPU 分配的变化:linklink 2。我通过在 Ubuntu 18.04 LTS 上创建两个 cgroup 来做到这一点,一个具有 cpu.shares = 1024,另一个具有 512 以显示 2:1 的比率。

但是,当我同时在每个 cgroup 中运行两个进程时,top 命令显示两个进程都在使用 100% 的 CPU,而不是 2:1 的比率。我不确定我做错了什么?

非常感谢任何帮助!

【问题讨论】:

    标签: linux ubuntu cpu-usage scheduling cgroups


    【解决方案1】:

    尝试给 CPU 更多压力,因为在 n 核 CPU 上运行 2 个单线程命令时,系统将有 n * 100% 的使用率分配给这些进程,因为这些是只有那些需要它的人。

    【讨论】:

    • hmmm 但是链接中的示例是如何做到的呢?所以你的意思是,如果我运行超过 n 个这些线程,那么我可以看到差异?
    • 在手动配置的 systemd cgroups 上对其进行了测试,结果与我预期的一样——即使在 cpu.shares = 16 上,该进程也设法使用了 100% 的线程,但只有在未使用时。当所有核心都具有最大负载时,该特定进程仅消耗了百分之几的 CPU。总之,例如运行带有少量 youtube 选项卡或视频编辑器的 firefox,因此它将使用您的所有 CPU 线程,您将看到调度程序共享 cpu 的结果,正如您所描述的截图与我的观察:imgur.com/a/BENzbxd
    • 所以你的意思是我需要确保核心完全用于其他进程,如 firefox 等,然后我可以看到 cgroup 分配的结果。但是我应该在我创建的同一个 cgroup 上创建进程,还是只是一般地创建它们?非常感谢您不遗余力地自己创建测试!不管怎样,我看到当你创建 4 个进程时,共享对你的影响变得更加明显,对吧?
    • 我实际上只是尝试过这个,但是比率并没有很好地分割?我做了以下操作:用播放高清视频的 youtube 标签打开了一些 chrome,创建了两个 cgroup A 和 1024,B 和 16。然后我将 urandoms 添加到每个 cgroup 中,但似乎 urandom 的 cpu 使用率始终没有变化乙?只有在我对 cgroup A 执行大约 8 或 9 个 urandom 后,它才会急剧下降?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 2018-01-10
    • 2019-10-17
    • 2021-03-01
    • 1970-01-01
    • 2013-03-04
    相关资源
    最近更新 更多