服務(wù)器的高并發(fā)能力如何提升?
服務(wù)器高并發(fā)能力體現(xiàn)著服務(wù)器在單位時(shí)間內(nèi)的很強(qiáng)數(shù)據(jù)處理能力,一般來(lái)說(shuō),如果企業(yè)的互聯(lián)網(wǎng)業(yè)務(wù)需要面對(duì)大量的同時(shí)在線(xiàn)請(qǐng)求,那么就需要高并發(fā)能力來(lái)支持。那么我們要如何才能提升服務(wù)器的并發(fā)處理能力呢?
1、提高CPU并發(fā)計(jì)算能力
服務(wù)器之所以可以同時(shí)處理多個(gè)請(qǐng)求,在于操作系統(tǒng)通過(guò)多執(zhí)行流體系設(shè)計(jì)使得多個(gè)任務(wù)可以輪流使用系統(tǒng)資源,這些資源包括CPU,內(nèi)存以及I/O。這里的I/O主要指磁盤(pán)I/O和網(wǎng)絡(luò)I/O。具體來(lái)講,就是采取多進(jìn)程&多線(xiàn)程、、減少進(jìn)程切換、減少使用不必要的鎖、考慮進(jìn)程優(yōu)先級(jí)和關(guān)注CPU使用率的方法來(lái)提高系統(tǒng)資源的利用率。這個(gè)方法的缺點(diǎn)在于:當(dāng)子進(jìn)程被父進(jìn)程創(chuàng)建后,進(jìn)程的創(chuàng)建使用fork()系統(tǒng)調(diào)用,需要耗費(fèi)一定的開(kāi)銷(xiāo),這個(gè)開(kāi)銷(xiāo)若太頻繁,可能影響性能。
2、內(nèi)存的分配和釋放
減少內(nèi)存的分配和釋放有利于我們提升服務(wù)器的并發(fā)處理能力。那么我們要怎樣做呢?對(duì)此,可以利用算法制度和改善數(shù)據(jù)結(jié)構(gòu),從而減少中間臨時(shí)變量的內(nèi)存分配和數(shù)據(jù)復(fù)制時(shí)間。此外,能夠利用共享內(nèi)存模式來(lái)降低內(nèi)存的分配和釋放的目的。
同時(shí),使用共享內(nèi)存也可以提高內(nèi)存的使用效率。共享內(nèi)存指在多處理器的計(jì)算機(jī)系統(tǒng)中,可以被不同中央處理器(CPU)訪(fǎng)問(wèn)的大容量?jī)?nèi)存,也可以由不同進(jìn)程共享,是非常快的進(jìn)程通信方式。這個(gè)方法的缺點(diǎn)在于:會(huì)影響服務(wù)器的運(yùn)輸速度。
3、對(duì)I/O操作
I/O就是計(jì)算機(jī)內(nèi)存和外部設(shè)備之間拷貝數(shù)據(jù)的過(guò)程。對(duì)于I/O操作,依據(jù)設(shè)備形式有不同的類(lèi)型,例如網(wǎng)絡(luò)I/O、磁盤(pán)I/O和內(nèi)存I/O。通常,網(wǎng)絡(luò)I/O速度相對(duì)要慢,因而我們可以利用高帶寬網(wǎng)絡(luò)適配器去提升速度。像這樣對(duì)I/O操作的過(guò)程,我們要CPU來(lái)調(diào)度。當(dāng)CPU調(diào)度上使用時(shí)間較少,也就能節(jié)約CPU處理時(shí)間,所以,對(duì)I/O操作在一定的程度上,也是提升服務(wù)器的并發(fā)處理能力的一種方法。
3、服務(wù)器高并發(fā)策略調(diào)整
這里說(shuō)的對(duì)服務(wù)器高并發(fā)策略調(diào)整,也就是盡量讓I/O操作和CPU計(jì)算重疊進(jìn)行。這樣的做法,主要是為了讓CPU在I/O操作時(shí)等待時(shí)間里不空閑,同時(shí)也能較大限度的減少等待的時(shí)間。
4、選擇持久鏈接
有一些朋友可能不清楚持久鏈接是什么,下面簡(jiǎn)單地介紹一下,持久連接也就是persistent connection,是通過(guò)TCP通信的一種方式,主要指不用為每個(gè)request object的傳送建立一個(gè)新的TCP連接,因而能減少TCP建立時(shí)間和相應(yīng)的系統(tǒng)損耗。簡(jiǎn)單的理解就是,在一次TCP鏈接中,可以實(shí)現(xiàn)持續(xù)發(fā)送多份數(shù)據(jù)而不斷開(kāi)連接。
從性能的角度來(lái)說(shuō),如果建立的TCP鏈接次數(shù)越少,對(duì)性能的提升是越有利的,因而這里為了提升服務(wù)器的并發(fā)處理能力,建議選擇使用持久鏈接。
5、優(yōu)化系統(tǒng)調(diào)用
系統(tǒng)調(diào)用涉及進(jìn)程從用戶(hù)態(tài)到內(nèi)核態(tài)的切換,導(dǎo)致一定的內(nèi)存交換,這也是一定程度上的上下文切換,所以系統(tǒng)調(diào)用的開(kāi)銷(xiāo)通常認(rèn)為比較昂貴的。減少不必要的系統(tǒng)調(diào)用,也是服務(wù)器性能優(yōu)化的一個(gè)方面。這個(gè)方法的缺點(diǎn)在于:當(dāng)進(jìn)程需要對(duì)硬件外設(shè)進(jìn)行操作的時(shí)候,必須切換到內(nèi)核態(tài),這時(shí)它需要擁有更多的權(quán)力來(lái)操縱整個(gè)計(jì)算機(jī)。
6、改進(jìn)硬件環(huán)境
還有一點(diǎn)要提及的是硬件環(huán)境,服務(wù)器的硬件配置對(duì)應(yīng)用程序的性能提升往往是最直接,也是最簡(jiǎn)單的方式,這就是所謂的scaleup。
以上就是對(duì)服務(wù)器高并發(fā)能力怎樣實(shí)現(xiàn)的討論,當(dāng)然對(duì)于提升提升服務(wù)器的并發(fā)處理能力還有其他的方法,上述的內(nèi)容僅供參考。
-
cpu
+關(guān)注
關(guān)注
68文章
11028瀏覽量
215832 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9663瀏覽量
87198 -
TCP
+關(guān)注
關(guān)注
8文章
1397瀏覽量
80298 -
并發(fā)
+關(guān)注
關(guān)注
0文章
7瀏覽量
2583
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論