架構(gòu)-18:單服務(wù)器高性能模式PPC與TPC)
高性能是每個(gè)程序員的追求,無論我們是做一個(gè)系統(tǒng)還是寫一行代碼,都希望能夠達(dá)到高性能的效果,而高性能又是最復(fù)雜的一環(huán),磁盤、操作系統(tǒng)、CPU、內(nèi)存、緩存、網(wǎng)絡(luò)、編程語言、架構(gòu)等,每個(gè)都有可能影響系統(tǒng)達(dá)到高性能,一行不恰當(dāng)?shù)膁ebug日志,就可能將服務(wù)器的性能從TPS30000降低到8000;一個(gè)tcp_nodelay參數(shù),就可能將響應(yīng)時(shí)間從2毫秒延長到40毫秒。因此,要做到高性能計(jì)算是一件很復(fù)雜很有挑戰(zhàn)的事情,軟件系統(tǒng)開發(fā)過程中的不同階段都關(guān)系著高性能最終是否能夠?qū)崿F(xiàn)。站在架構(gòu)師的角度,當(dāng)然需要特別關(guān)注高性能架構(gòu)的設(shè)計(jì)。高性能架構(gòu)設(shè)計(jì)主要集中在兩方面:· 盡量提升單服務(wù)器的性能,將單服務(wù)器的性能發(fā)揮到極致?!?如果單服務(wù)器無法支撐性能,設(shè)計(jì)服務(wù)器集群方案。除了以上兩點(diǎn),最終系統(tǒng)能否實(shí)現(xiàn)高性能,還和具體的實(shí)現(xiàn)及編碼相關(guān)。但架構(gòu)設(shè)計(jì)是高性能的基礎(chǔ),如果架構(gòu)設(shè)計(jì)沒有做到高性能,則后面的具體實(shí)現(xiàn)和編碼能提升的空間是有限的。形象地說,架構(gòu)設(shè)計(jì)決定了系統(tǒng)性能的上限,實(shí)現(xiàn)細(xì)節(jié)決定了系統(tǒng)性能的下限。單服務(wù)器高性能的關(guān)鍵之一就是服務(wù)器采取的并發(fā)模型,并發(fā)模型有如下兩個(gè)關(guān)鍵設(shè)計(jì)點(diǎn):· 服務(wù)器如何管理連接?!?服務(wù)器如何處理請求。以上兩個(gè)設(shè)計(jì)點(diǎn)最終都和操作系統(tǒng)的I/O模型及進(jìn)程模型相關(guān)?!?I/O模型:阻塞、非阻塞、同步、異步?!?進(jìn)程模型:單進(jìn)程、多進(jìn)程、多線程。在下面詳細(xì)介紹并發(fā)模型時(shí)會(huì)用到上面這些基礎(chǔ)的知識點(diǎn),所以我建議你先檢測一下對這些基礎(chǔ)知識的掌握情況,更多內(nèi)容你可以參考《UNIX網(wǎng)絡(luò)編程》三卷本。今天,我們先來看看單服務(wù)器高性能模式