萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> 提高Apache服務器性能的四個建議

提高Apache服務器性能的四個建議

class="152522">

Apache服務器是在Linux系統上部署HTTP服務器的一個最佳選擇。不僅僅因為其穩定、安全,而且其還能夠提供比較優越的性能。不過為了提高Apache服務器的性能,Linux系統管理員還是需要調整一些跟性能相關的參數,在Apache服務器中專門有一個模塊用來進行相關的調整。作為系統管理員,在部署Apache服務器應用的時候,需要了解這些參數的含義,並根據網站應用的實際情況來進行相關的調整。要實現這個目的,筆者下面的幾條建議或許能夠對大家有所幫助。

  建議一:設置最多連接數量。

  為了保障每個連接的客戶端的性能,往往需要在服務器中設置在同一時間內允許的客戶端數量的上限。如在服務器上部署了電子郵件或者FTP等應用服務,為了能夠保障下載的速度,就需要對連接客戶端進行最高數量的限制。在Apache服務器中有一個“最多連接數量的欄目,就是用來設置這個值。另外也可以利用配置文件中的MaxClinets參數來進行設置。通過這個參數,系統管理員可以限制客戶端的連接數量與連接時間,以節省帶寬來提供其他的服務或者提高已有連接的效率。當客戶端的連接數量超過這個最高限制後,所有新建的連接都會被拒絕;當然服務器會把拒絕錯誤信息返回給客戶。

  在進行這個設置的時候,需要注意兩個問題。一是在Linux操作系統上配置Xinetd服務的時候也可以進行類似的設置。如通過配置Xinetd服務配置文件中的instances參數可以設置單一服務在同一時間內提供客戶端連接請求的最高上限。那麼這個參數跟Apache服務器中的連接數量設置是什麼關系呢?如instance參數設置為100;而MaxClints參數設置為120。那麼最終可以連接到Apache服務器上的客戶端數量為多少呢?注意,由於客戶端的互聯網連接請求是先通過Linux操作系統的,所以在Linux操作系統上的配置往往具有比較高的優先性。為此,當instance參數小於MaxClints參數時,以前者為准;當instance參數大於MaxClints參數時,以後者為准。故有時候客戶端提示連接數量超過上限時,系統管理員往往需要同時檢查這兩個參數,才能夠發現問題的真正原因。二是需要考慮在什麼情況下需要啟用這個限制。一般來說,如果HTTP服務器上的應用主要是在企業內部網絡中應用,由於帶寬比較理想,為此不需要設置這個限制。但是如果是面向互聯網用戶的,則往往需要設置這個限制。如企業部署了一個FTP服務器,供互聯網的用戶下載。由於其帶寬是固定的,當下載的用戶越多,其能夠得到的下載速度也就越低。為此為了給已有連接的用戶提供一個比較好的速率,往往就需要設置一個最多連接數。以免連接用戶過多而影響下載的速率。

  建議二:允許每次連接可有無限制請求。

  如果是在Solaris Linux上部署Apache服務器的話,最好對這個參數進行設置。這個選項表示當客戶端與服務器建立連接後,每個子進程在結束前所能接受的客戶端請求上限。當達到這個上限值之後,這個子進程就會中斷。這主要是為了避免某些子進程占用過多的服務器資源而導致服務器性能的下降。“設置最多的連接數量選項主要用來限制客戶端的連接數量;而每個客戶端在同服務器進行連接的時候可以采用多個子進程與服務器進行連接。如FTP連接一個客戶端默認情況下可以采用5個子進程進行連接。而這個客戶端下載的總速率就是5個子進程的總合。故在部署Apache服務器的時候,就需要對這個選項進行限制。防止同一個客戶端開啟了比較多的進程,占用了大量的服務器硬件資源。

  不過需要注意的是,這個參數跟另外一個參數keepalive很相似,但是兩者有很大的區別。KeepAlive顧名思義,主要是用來保證客戶端與服務器之間的一個持續連接。如果Apache服務器主要用來做視頻會議或者提供在線觀看電影的話,則這個參數就很有價值。此時如果把這個參數設置為OFF的話,則客戶端浏覽器可能必須在包含多重組件的網頁中,建立許多連接請求。並且在連接的過程中,每個組件都必須進行單獨的連接。而這些額外的請求與連接惠增加服務器的負擔及網絡帶寬的損耗。

  在日常的配置中,往往是這個配置選項同時使用。如往往同時啟用“允許每次連接可有無限制請求與KeepAlive選項,並設置可以連接的最大進程數。如此的話,即可以避免因為連接數過多而給服務器帶來負擔;同時又不會影響多次頻繁的連接請求而給服務器帶來的額外負擔。

  建議三:合理配置超時時間。

  這個選項是指客戶端提出連接請求並建立起連接後,最大的空閒時間。如果超過這個時間,客戶端與服務器之間仍然沒有進行任何的接收或者發送信息的動作,則就會中斷這個連接。其實這個選項對於訪問者來說是一把雙刃劍。一方面限制無用的連接時間(客戶端連接上服務器而沒有進行任何的請求動作)可以減少帶寬的浪費,可以保障其他訪者著的帶寬;但是另一方面這也比較容易引起客戶端使用上的不方便。如訪者者可能臨時有事走開一會兒(如上了一趟廁所)客戶端與服務器端的連接就會中斷。客戶端需要重新連接服務器,從而需要進行新一輪的連接請求、身份認證等等,這也會耗用服務器的資源與帶寬。所以說,這個超時時間對於雙方來說,都是有利又有弊。故系統管理員在配置這個選項的時候,需要進行評估,確定是否需要設置這個選項,並為此確定一個合理的超時時間。

  一般來說,如果設置了最大客戶端連接數量的話,則最好同時配置這個超時時間。如服務器設置了最大的客戶端連接數量為100個,而現在已經有100個客戶端連接在Apache服務器上了。但是其中有20個客戶端已經1個小時沒有動作了。很有可能是其去吃飯或者其他原因忘記關閉網頁,而沒有中斷與服務器的連接。此時這20個客戶端的連接其實一種兩費。此時如果設置了這個超時時間的話,如超過10分鐘沒有任何數據傳送動作的話就自動關閉這個客戶端的連接。很明顯這可以提高這個連接點數的利用效率。
;

[1][2];下一頁

copyright © 萬盛學電腦網 all rights reserved