我们必须使我们的系统具有高度可扩展性,并且已经针对使用VC++的Windows平台开发。说起初,我们想同时处理100个请求(来自msmq)。最好的方法是什么?单线程100线程或2线程50-50线程?在第二种方法的情况下,除了过程记忆之外还有什么收益。在Windows中首先将CPU时间分配给进程,然后在该进程的线程之间进行拆分,或者OS对每个进程的线程数进行计数并根据线程而不是进程分配CPU。我们注意到,在第一种情况下,CPU利用率是15-25%,我们想要消耗更多的CPU。请记住,我们希望获得最佳性能,因此100个请求只是例如。我们也注意到,如果我们增加120以上进程的线程数,由于上下文切换性能下降。Windows,多进程vs多线程
还有一点;我们的产品已经支持群集,但我们希望在单个节点上使用更多的CPU。
任何建议将不胜感激。
是的,我们已经面对它。数据库是主要的瓶颈。不要冒犯任何人,但是与sql服务器相比,我们的oracle性能要好得多。但在我们这个地区,我们大部分的客户都坚持使用sql server(价格便宜),这对我们来说是一个瓶颈。 – 2010-10-15 07:53:52