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