本文簡(jiǎn)單說(shuō)一下一個(gè)幾乎沒有人考慮過的問題,那就是為什么Open×××被設(shè)計(jì)成單線程單進(jìn)程的。我曾經(jīng)苦苦等待Open×××新版本的推出,第一件事就是看其ChangeLog,然而沒有發(fā)現(xiàn)multiXXX,我一直都不理解多核時(shí)代為何還有單進(jìn)程單線程的Open×××,這個(gè)答案在我通讀了Open×××的maillist之后終于有了答案。
多線程在多核系統(tǒng)中的大好處就是可以大限度的利用多個(gè)處理器核心,然而一個(gè)好的算法在多核環(huán)境中最最關(guān)注的就是如何將欲求解的問題分割成可以并行處理的多個(gè)問題,然后將其分派給不同的處理器核心去處理。在典型的C/S模型中,一般根據(jù)客戶來(lái)分派線程或者進(jìn)程。比如Apache就是這么做的,其實(shí)IIS也差不到哪去,而且經(jīng)典的UNIX網(wǎng)絡(luò)編程規(guī)范也建議如此做,因此人們很容易將Apache的做法看做是理所當(dāng)然的,雖然有了event機(jī)制來(lái)替代單純的per-客戶-per-thread,然而其底層實(shí)現(xiàn)都差不到哪去,只是用戶態(tài)的api改變大。
現(xiàn)在看看Open×××為何僅僅使用了單個(gè)處理器核心?原因很簡(jiǎn)單,那就是在IP層無(wú)法很好分割問題,如果按照用戶來(lái)分割,那么很有可能一個(gè)用戶連上之后并不傳輸數(shù)據(jù),從而造成線程閑置,若若按照實(shí)際訪問的目標(biāo)來(lái)分割,那么將會(huì)造成一個(gè)笛卡爾積的復(fù)雜局面。因此最佳的方式就是讓×××的搭建著自己來(lái)完成問題的分割,然后通過注入負(fù)載均衡以及虛擬網(wǎng)卡bonding之類的技術(shù)來(lái)提高效率。然而可悲的是,事實(shí)上這樣做的人很少,大多數(shù)人都十分滿足于Open×××單線程的現(xiàn)有表現(xiàn),我在網(wǎng)上google相關(guān)的Open×××提速方案,令人幾乎掉淚的是搜索到的文章幾乎都是我自己寫的…咱也是普通一朵程序員,也有任務(wù)在身,也不是什么研究所的專職資料整理者,因此也希望能互動(dòng)一把,總不能光奉獻(xiàn)不索取吧。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
成都創(chuàng)新互聯(lián)公司專注于企業(yè)
成都全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、左云網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、
H5建站、
商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、
成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為左云等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
本文標(biāo)題:Open×××單線程原因-創(chuàng)新互聯(lián)
本文地址:
http://weahome.cn/article/dosipi.html