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