首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在服务器上强制使用100%的CPU

在服务器上强制使用100%的CPU
EN

Stack Overflow用户
提问于 2014-08-06 04:46:41
回答 1查看 647关注 0票数 1

我有一个C# ASP.NET应用程序,它运行一些冗长的模拟,并且是并行执行的。就像这样..。

代码语言:javascript
运行
复制
    static void Main(string[] args)
    {
        var myArray = new[] {450, 586, 879, 457, 657, 852, 407, ... };

        myArray.AsParallel().ForAll(DoStuff);
    }

    static void DoStuff(int number)
    {
        //do stuff
    }

当在本地和我的大多数服务器(Amazon实例)上运行时,执行这些代码会占用100%的EC2。这就是我想要的。我需要尽快完成这些大型计算。

我的1台服务器是C3.8XLARGE

英特尔至强E5-2680 v2 (常春藤之桥)处理器

vCPU: 32

mem (GiB):60

在此服务器上,CPU利用率永远不会超过60%,并且运行速度非常慢。

是什么原因导致仅在此服务器上发生这种情况?如何排除故障?

EN

回答 1

Stack Overflow用户

发布于 2014-08-07 04:14:14

问题可能出在"ForAll“方法以及它的伸缩性上。

要有100%的CPU,你应该让每个核心有一个线程来做一些非常繁重的事情。

第三方公共关系在内部创建任务,并有一个默认的TaskScheduler类来处理请求并将其委托给线程池。也许在这方面有一些滞后。

我会创建一种不同的方法,手动创建线程或任务(每个核心1个)。如果你仍然没有得到100%的CPU,我认为服务器故障是一个好主意。可能与物理/虚拟机或服务器中的某些节流有关。

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

https://stackoverflow.com/questions/25148001

复制
相关文章

相似问题

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