在《調(diào)諧LINUX網(wǎng)絡(luò)性能之調(diào)試工具篇》和《調(diào)諧LINUX網(wǎng)絡(luò)性能之網(wǎng)絡(luò)配置文件詳解》兩篇文章中,我們介紹了route、netstat、tcpdump三種網(wǎng)絡(luò)調(diào)諧測試工具的使用方法及其可實現(xiàn)的功能和網(wǎng)絡(luò)配置文件的內(nèi)容,本文我們將從實戰(zhàn)的角度介紹網(wǎng)絡(luò)性能調(diào)諧的方法。
下面,我們先來介紹網(wǎng)絡(luò)性能調(diào)諧的第一種方法:服務(wù)方式選擇。
服務(wù)方式選擇
網(wǎng)絡(luò)服務(wù)器由于要同時為多個客戶提供服務(wù),就必須使用某種方式來支持這種多任務(wù)的服務(wù)方式。一般情況下可以有三種方式來選擇,多進程方式、多線程方式及異步方式。其中,多進程方式中服務(wù)器對一個客戶要使用一個進程來提供服務(wù),由于在操作系統(tǒng)中,生成一個進程需要進程內(nèi)存復制等額外的開銷,這樣在客戶較多時的性能就會降低。為了克服這種生成進程的額外開銷,可以使用多線程方式或異步方式。在多線程方式中,使用進程中的多個線程提供服務(wù),由于線程的開銷較小,性能就會提高。事實上,不需要任何額外開銷的方式還是異步方式,它使用非阻塞的方式與每個客戶通信,服務(wù)器使用一個進程進行輪詢就行了。異步方式下,多個任務(wù)之間的調(diào)度是由服務(wù)器程序自身來完成的,而且一旦一個地方出現(xiàn)問題則整個服務(wù)器就會出現(xiàn)問題,不在討論的范圍內(nèi)。增大系統(tǒng)線程的數(shù)量:限制線程的數(shù)量的因素很多,主要有進程數(shù)量的限制,內(nèi)存大小的限制,mutex/semaphore/shm/ipc的限制;一般情況下先增大進程 大數(shù),再擴充內(nèi)存,在增大線程 大數(shù),而增大線程 大數(shù)的方法很簡單,只需改變glibc中兩處即可:線程 大數(shù)和線程堆棧區(qū)的大小;線程 大數(shù)的增加是以進程的異步I/O性能下為代價;所以需要加以平衡。
絡(luò)配置文件中有用的內(nèi)容
1. 對于數(shù)據(jù)庫而言,增大共享內(nèi)存段和信號量的多少,對數(shù)據(jù)傳輸效率的提高起到很重要的作用;
方法:只需編輯文件linux/include/linux/sem.h和linux/include/asm-i386/shmparam.h即可。
2. 先增大進程 大數(shù),再擴充內(nèi)存,再增大線程 大數(shù),而增大線程 大數(shù)的方法很簡單,只需改變glibc中兩處即可:線程 大數(shù)和線程堆棧區(qū)的大;
3. 把"/etc/inittab"文件中的一行注釋掉可以禁止用Control-Alt-Delete關(guān)閉計算機。如果服務(wù)器不是放在一個安全的地方,這非常重要。
編輯inittab文件(vi /etc/inittab)把這一行: