首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多核服务器上工作进程的CPU使用情况

多核服务器上工作进程的CPU使用情况
EN

Stack Overflow用户
提问于 2012-03-22 17:13:03
回答 1查看 1.7K关注 0票数 2

设置

我们编写了一个Windows服务,它触发单独的工作进程来执行各种CPU密集型任务。服务器和工作人员通过IPC命名的管道进行通信。

目前,我们通过一个简单的Process.Start()调用创建工人。

当我们在一个相当低规格的双核服务器VM上运行一些工作人员时,任务管理器告诉我们,每个工作人员大约使用2-3%的CPU。

然而(这是让我们困惑的事情),当我们在一个非常强大的八核服务器上执行相同的测试时,我们仍然看到每个工作进程使用2-3%的CPU。现在,由于有更多的CPU“能力”可用,我希望看到每个工作人员使用的CPU百分比要小得多。

这也意味着,在低性能服务器上,在创建了30个工作进程之后,我们达到了100%的CPU。但是在高性能的CPU上,我们在相同数量的工人之后达到了同样的极限。我们希望能够管理更多的工人。

问题

所以,我有几个问题:

  • 我们是否误解了任务管理器告诉我们的价值观?CPU %值是所有核的CPU时间消耗量吗?如果是这样的话,为什么我们在非常不同的hardware?
  • Should上做一些特殊/不同的事情来将我们的工作进程正确地分布在多个核上呢?目前,进程具有默认的处理器关联(因此它们能够在任何核心上运行)。

任何帮助,建议,链接,将不胜感激。

给那些留言的人提供一些额外的信息:

我一开始没有提到它,因为我不一定想给我的问题增加额外的复杂性,但是我们的工作流程正在做实时视频流的视频转换。因此,没有任何员工能够“完成”它的任务--只要连接到客户端,它就能正常工作。

实质上:

  • 客户端连接到服务器
  • 服务器服务器启动一个工作进程,当从所述视频流接收到视频时,该工作进程连接到远程视频流
  • ,工作人员将其转码并将已编码的视频发送回客户端。

不确定这是否对其他建议有帮助?谢谢你到目前为止的所有评论。

EN

回答 1

Stack Overflow用户

发布于 2012-03-22 17:20:37

进程使用CPU的2-3%这一事实表明,您的进程不是CPU绑定的,而是可能是IO绑定的,或者有其他限制的。

2核心服务器VM上的IO可能比您的8核心服务器慢很多,这反过来又限制了那里的行为。这可能是为什么表面上的CPU使用率是相同的,尽管我怀疑整个服务器可能会更快地完成任务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9827153

复制
相关文章

相似问题

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