假设某位用户在阅读网站上的某一网页,然后它单击某一导向站内另一网页的链接。假如这一过程发生在KeepAliveTimeout 周期之内(默认为15秒),那么就不必创建新的TCP服务器连接。这样做大大减少了计算机的负载。然而,在这一时间区域内服务器也不能处理更多的请求。KeepAliveTimeout周期过后,服务器才可以处理来自不同客户机的最新请求。因此,你必须增加请求进程或者线程的数量以满足空闲请求的需要。这个值应该进行仔细的调整以达到最佳状态。
2 Timeout 300
Timeout定義客戶程序和伺服器連接的超時間隔,超過這個時間間隔(秒)後伺服器將斷開與客戶機的連接。
KeepAlive On
在HTTP 1.0中,一次連接只能作傳輸一次HTTP請求,而KeepAlive參數用於支持HTTP 1.1版本的一次連接、多次傳輸功能,這樣就可以在一次連接中傳遞多個HTTP請求。雖然只有較新的瀏覽器才支持這個功能,但還是打開使用這個選項。
MaxKeepAliveRequests 100
MaxKeepAliveRequests為一次連接可以進行的HTTP請求的最大請求次數。將其值設為0將支持在一次連接內進行無限次的傳輸請求。事實上沒有客戶程序在一次連接中請求太多的頁面,通常達不到這個上限就完成連接了。
KeepAliveTimeout 15
KeepAliveTimeout測試一次連接中的多次請求傳輸之間的時間,如果伺服器已經完成了一次請求,但一直沒有接收到客戶程序的下一次請求,在間隔超過了這個參數設置的值之後,伺服器就斷開連接。
MinSpareServers 5
MaxSpareServers 10
在使用子進程處理HTTP請求的Web伺服器上,由於要首先生成子進程才能處理客戶的請求,因此反應時間就有一點延遲。但是,Apache伺服器使用了一個特殊技術來擺脫這個問題,這就是預先生成多個空余的子進程駐留在系統中,一旦有請求出現,就立即使用這些空余的子進程進行處理,這樣就不存在生成子進程造成的延遲了。在運行中隨著客戶請求的增多,啟動的子進程會隨之增多,但這些伺服器副本在處理完一次HTTP請求之後並不立即退出,而是停留在電腦中等待下次請求。但是空余的子進程副本不能光增加不減少,太多的空余子進程沒有處理任務,也占用伺服器的處理能力,因此也要限制空余副本的數量,使其保持一個合適的數量,使得既能及時回應客戶請求,又能減少不必要的進程數量。
因此就可以使用參數MinSpareServers來設置最少的空余子進程數量, 以及使用參數MaxSpareServers 來限制最多的空閑子進程數量,多余的伺服器進程副本就會退出。根據伺服器的實際情況來進行設置,如果伺服器性能較高,並且也被頻繁訪問,就應該增大這兩個參數的設置。對於高負載的專業網站,這兩個值應該大致相同,並且等同於系統支持的最多伺服器副本數量,也減少不必要的副本退出。
StartServers 5
StartServers參數就是用來設置httpd啟動時啟動的子進程副本數量,這個參數與上面定義的MinSpareServers和MaxSpareServers參數相關,都是用於啟動空閑子進程以提高伺服器的反應速度的。這個參數應該設置為前兩個值之間的一個數值,小於MinSpareServers和大於MaxS pareServers都沒有意義。
MaxClients 150
在另一方面,伺服器的能力畢竟是有限的,不可能同時處理無限多的連接請求,因此參數Maxclient s就用於規定伺服器支持的最多並發訪問的客戶數,如果這個值設置得過大,系統在繁忙時不得不在過多的進程之間進行切換來為太多的客戶進行服務,這樣對每個客戶的反應就會減慢,並降低了整體的效率。如果這個值設置的較小,那麼系統繁忙時就會拒絕一些客戶的連接請求。當伺服器性能較高時,就可以適當增加這個值的設置。對於專業網站,應該使用提高伺服器效率的策略,因此這個參數不能超過硬體本身的限制,如果頻繁出現拒絕訪問現象,就說明需要升級伺服器硬體了。對於非專業網站,不太在意對客戶瀏覽器的反應速度,或者認為反應速度較慢也比拒絕連接好,就也可以略微超過硬體條件來設置這個參數。
這個參數限制了MinSpareServers和MaxSpareServers的設置,它們不應該大於這個參數的設置。
MaxRequestsPerChild 30
使用子進程的方式提供服務的Web服務,常用的方式是一個子進程為一次連接服務,這樣造成的問題就是每次連接都需要生成、退出子進程的系統操作,使得這些額外的處理過程占據了電腦的大量處理能力。因此最好的方式是一個子進程可以為多次連接請求服務,這樣就不需要這些生成、退出進程的系統消耗,Apache就採用了這樣的方式,一次連接結束後,子進程並不退出,而是停留在系統中等待下一次服務請求,這樣就極大的提高了性能。
但由於在處理過程中子進程要不斷的申請和釋放內存,次數多了就會造成一些內存垃圾,就會影響系統的穩定性,並且影響系統資源的有效利用。因此在一個副本處理過一定次數的請求之後,就可以讓這個子進程副本退出,再從原始的htt pd進程中重新復制一個干淨的副本,這樣就能提高系統的穩定性。這樣,每個子進程處理服務請求次數由MaxRe questPerChild定義。 預設的設置值為30,這個值對於具備高穩定性特點的FreeBSD系統來講是過於保守的設置,可以設置為1000甚至更高,設置為0支持每個副本進行無限次的服務處理。