我們必須使我們的系統具有高度可擴展性,並且已經針對使用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