【问题标题】:How to control CPU usage for particular process?如何控制特定进程的 CPU 使用率?
【发布时间】:2016-08-22 09:25:16
【问题描述】:

我想通过我的应用程序控制 CPU 使用率,谁能帮助我实现这一点?

例如:我想编写一个函数,如果我们将参数作为 150 传递,那么该特定进程的 cpu 使用率应该是 150。

抱歉没有写代码,我不知道如何开始。

所以我不是要代码,而是要问,是否有人可以帮助我解决逻辑/如何实现这一点?

【问题讨论】:

    标签: c linux cpu-usage


    【解决方案1】:

    基本上,Linux 内核已经包含了为任何类型的进程管理资源的功能;你可以在不编写 C 代码的情况下利用它。

    恰恰相反:你只是想自学如何使用cgroups;然后你想用“最小”的努力来使用背后的概念来编写你身边的自定义代码。

    不要在这里重新发明轮子;如:与现有的 cgroup 今天相比,您的轮子(很可能)有缺陷

    但即使阅读了您的评论,我也不明白您为什么认为必须实施自己的自己的解决方案。如果您的程序需要少于 X%;无论如何,您对此无能为力。如果它想要的不止X;创建自己的专有机制有什么意义?

    无论如何,cpulimit 工具可能会帮助您实现目标。

    而且,您的“真正”问题似乎是:“如何产生 CPU 负载”;有很多方法可以到达那里,例如here

    【讨论】:

    • 感谢您的宝贵答复,但我的问题有所不同。我非常了解 cgroup 的特性和功能。先生,基本上我的问题是我的应用程序/我的程序应该按照参数中提供的那样启动 CPU 使用率。例如:如果我开始 while(1);如果我将 sleep(1) 放入 while(1) CPU 利用率 = 0-1%,则 CPU 利用率 = 100%。所以我想要的是,无论我在参数中提供什么利用率,我的应用程序都应该开始使用那么多 cpu。
    • 先生,基本上我正在准备一个测试工具来根据要求产生 CPU 压力,我认为 cpulimit 将有助于 100% 呢?我怎样才能产生超过 100% 的 CPU 使用率?我认为只创建线程会有所帮助,还是有其他方法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2011-02-26
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多