我正在尝试在我的新的HP Proliant服务器上对多线程应用程序进行基准测试,该服务器有2倍Opteron 6272和64 2x内存。
当我在桌面计算机(一系列i7s和Xeon X5675处理器)上运行应用程序时,应用程序将使所有内核达到接近100%的利用率。
当我在服务器上运行应用程序时,无论运行多少线程,应用程序的cpu总利用率都在20-25%左右。也就是说,如果我用32个线程运行,所有32个内核都将挂起20%左右,如果我运行16个线程,它们将挂起40%,依此类推。
我对这个问题感到困惑。有人知道是什么原因造成的吗?
发布于 2012-04-23 19:20:13
如果您的应用程序正在处理大量数据,请尝试遵循数据的路径--如果输入数据是从网络输入的,请检查可能的延迟、带宽限制或传输错误。您已经检查了磁盘I/O,否则可能会出现瓶颈。
最后但并非最不重要的一点是,由于它是一个高度多线程的.NET应用程序,您应该确保使用了服务器垃圾收集,否则您可能会看到描述的在这篇文章中,堆栈溢出所描述的奇怪的加载特性。
https://serverfault.com/questions/381715
复制相似问题