首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个进程在做大量的计算--我想要一个得到~100%的处理器时间--怎么做?

两个进程在做大量的计算--我想要一个得到~100%的处理器时间--怎么做?
EN

Ask Ubuntu用户
提问于 2019-10-09 15:17:12
回答 1查看 127关注 0票数 0

我使用两个进程运行Ubuntu basic服务器:- process 1--执行100%的正常运行时间计算,并使用它与社区共享计算能力(它正在运行@prio 19) -进程2--不时执行5-10分钟的计算,我使用它为我计算(它正在运行@ prio -19)

我希望进程2被给予100%的计算能力(进程1在那个时刻应该接近于CPU的0% )。

我尝试使用尼斯/ renice和进程1与prio 19 (最低可能)和进程2是给予PRIO-19(最高可能)。但是我得到的最好的是进程1的CPU的50%,进程2的CPU的50% (用htop检查)--这让我有点吃惊……

这两个进程都是多线程的,如果单独运行,则消耗100%的CPU内核。没有其他资源(I/O、内存、带宽.)会影响这种用法。

当我需要计算能力时,我不想手动停止/启动任何进程(两个进程都必须一直在运行);进程2的CPU必须100%是自动分配的。

我应该怎么做才能达到我的目标?谢谢。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2019-10-09 21:53:22

由于@ubfan1 1,我探索了不同的调度策略,下面是我迄今取得的最佳结果:

  • 进程1是使用SCHED_BATCH策略运行的。
  • 进程2是使用SCHED_RR策略运行的。

结果:当两个进程同时运行时,进程1被赋予CPU的约5%,进程2被赋予CPU的95%。

当只有进程1执行计算时(进程2正在等待我的输入开始计算)-进程1使用100%的CPU。

如果有人更感兴趣,请阅读以下内容:

  1. http://manpages.ubuntu.com/manpages/xenial/man8/schedtool.8.html
  2. http://man7.org/linux/man-pages/man7/sched.7.html
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1179759

复制
相关文章

相似问题

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