【发布时间】:2010-10-14 04:50:19
【问题描述】:
我们必须使我们的系统具有高度可扩展性,并且它是使用 VC++ 为 windows 平台开发的。最初说,我们想同时处理 100 个请求(来自 msmq)。最好的方法是什么?具有 100 个线程的单个进程或具有 50-50 个线程的 2 个进程?在第二种方法的情况下,除了进程内存之外还有什么好处。在Windows中首先将CPU时间分配给进程,然后在该进程的线程之间拆分,或者OS计算每个进程的线程数并根据线程而不是进程分配CPU。我们注意到在第一种情况下,CPU 利用率为 15-25%,我们想要消耗更多的 CPU。请记住,我们希望获得最佳性能,因此 100 个请求只是示例。我们还注意到,如果我们将进程的线程数增加到 120 以上,性能会因上下文切换而下降。
还有一点;我们的产品已经支持集群,但我们希望在单个节点上利用更多的 CPU。
任何建议都将受到高度赞赏。
【问题讨论】:
标签: windows multithreading process