httpd.conf文件如何配置KeepAlive

轉自:百度搜索
KeepAlive  意思爲是否長連接。 後邊可以設置 On 或者 Off
簡單理解就是這樣: 如果設置成On,那麽當apache完成用戶的請求後,那麽apache進程不會斷開用戶的請求連接,依然保持連接狀態。設置成Off則當apache完成用戶的請求後,那麽apache進程會立即斷開和用戶的請求連接。
如果,完成用戶的連接依然連接,這樣的好處是:當該用戶的請求在過來時,apache會用這個已經建立的連接,不需要重新創建連接。這樣會節省CPU的資源。但是卻耗費了記憶體。爲什麽呢?可以假設這樣的場景。假如keepalive 超時時間爲10s,而每1s中有100個用戶請求訪問,每個用戶3次連接,每個連接耗費2M記憶體,那麽10s內建立的連接次數爲1000次(跟用戶每s請求次數無關),消耗記憶體爲1000*2=2000M,相反,如果不保持長連接,同樣的環境場景下,每1s內有100*3個連接,下一秒還是100*3個連接,也就是說永遠都是100*3個連接,那麽1s內甚至10s內消耗的記憶體爲100*3*2=600M。 然而,在這10s內創建的連接次數爲100*3*10=3000次,這樣肯定消耗了更多的cpu資源。畢竟每次tcp連接都是需要cpu去處理的。
問題來了,既然知道長連接與否的利與弊,那麽如何判定什麽時候On,什麽時候Off?
在上面的舉例中,涉及到了一個數,那就是每個用戶在1s內請求的次數,你再回去好好看看,如果把3改爲1,是不是10s內得到的連接次數總和是一樣的。對!那麽這樣無論是On還是Off,消耗的CPU資源是一樣的。所以,我們考慮3種情況:
  1。用戶浏覽一個網頁時,除了網頁本身外,還引用了多個 javascript 文件,多個 css 文件,多個圖片文件,並且這些文件都在同一個 HTTP 伺服器上。
  2。用戶浏覽一個網頁時,除了網頁本身外,還引用一個 javascript 文件,一個圖片文件。
  3。用戶浏覽的是一個動態網頁,由程序即時生成內容,並且不引用其他內容。
對于上面3中情況,我認爲:1 最適合打開 KeepAlive ,2 隨意,3 最適合關閉 KeepAlive(連接消耗的記憶體比較大)
總結一下:
  在記憶體非常充足的伺服器上,不管是否關閉 KeepAlive 功能,伺服器效能不會有明顯變化;
  如果伺服器記憶體較少,或者伺服器有非常大量的文件系統訪問時,或者主要處理動態網頁服務,關閉 KeepAlive 後可以節省很多記憶體,而節省出來的記憶體用于文件系統Cache,可以提高文件系統訪問的效能,並且系統會更加穩定。
    目前的伺服器,CPU很強,所以不用考慮頻繁的tcp連接對cpu造成的壓力,那還讓它長連接幹什麽,故,建議關閉你的長連接吧!!!
PS: 如果,你的伺服器上請求量很大,那你最好還是關閉這個參數吧。我試過一次,打開長連接,並且設置超時時間爲30s,結果僅僅十幾s就把所有的httpd進程跑滿。這樣很危險的,直接讓用戶等待,等30s,這不扯淡嘛?即使是你設置成3s,照樣會讓用戶等待3s,這樣很不合理的。所以,歸根結蒂還是關閉長連接吧,這樣效率會更高。
更多相關文章
  • ServerType standalone#設置伺服器的形式是單獨啓動(standalone),還是借由互聯網路伺服程序inetd來啓動.一般使用前者.ServerRoot "/usr/local/apache"#設置伺服器的Home目錄,用來存放伺服器的設置文件.錯誤文件.記錄 ...
  •     Apache伺服器的設置文件位于/etc/httpd/conf/目錄下,傳統上使用三個配置文件httpd.conf,access.conf和srm.conf,來配置Apache伺服器的行爲.    httpd.conf提供了最基本的伺服器配置,是對守護程序httpd如何運行的技術描述:srm ...
  • 通常一個Web伺服器可以具有多個名字,客戶浏覽器可以使用所有這些名字或IP地址來訪問這台伺服器,但在沒有定義虛擬主機的情況下,伺服器總是以自己的正式名字回應浏覽器.ServerName就定義了Web伺服器自己承認的正式名字,例如一台伺服器名字(在DNS中定義了A類型)爲 exmaple.org.cn ...
  • Options Indexes FollowSymLinks        在331行 修改爲:Options Includes ExecCGI FollowSymLinks(允許伺服器執行CGI及SSI)   #AddHandler cgi-script .cgi        在796行 修改爲 ...
  • apache檢查httpd.conf的語法錯誤的方法 2009-12-21 14:45 修改了apache httpd.conf文件之後,怎麽樣驗證其語法是否正確呢?當然,我們可以重新啓動apache伺服器,但這樣一來,如果萬一存在錯誤,apache伺服器將不能正常啓動,也不能提供正常服務. 所以我 ...
  • httpd.conf文件在某些操作系統上,安裝後是個空文件,尤其是最新的APACHE2,該配置文件已經分散到不同配置文件裏,比如 DirectoryIndex設置可能轉到/mods-enabled/dir.conf裏定義,httpd.conf本身大部分設置都轉到apache2.conf裏.等等,如果 ...
  • ServerRoot "/usr/local" ServerRoot用于指定守護進程httpd的運行目錄,httpd在啓動之後將自動將進程的當前目錄改變爲這個目錄,因此如果設置文件中指定的文件或目錄是相對路徑,那麽真實路徑就位于這個ServerR oot定義的路徑之下. Scor ...
  •   Apache中Httpd.conf詳解 ## Apache伺服器主配置文件. 包括伺服器指令的目錄設置.# 詳見 <URL:http://www.apache.org/docs/> ## 請在理解用途的基礎上閱讀各指令.## 再讀取此文檔後,伺服器將繼續搜索運行# E:/Progra ...
一周排行