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 ...
一周排行
  • 首先,假設這個程序員是一位職場新手甲.他剛大學畢業,沒有工作經驗.來自産品的需求,他要理解很久才能做.然後開發的過程中會遇到各種問題,如果經驗不足以支撐他快速完成任務,那麽只能求助于網路,書籍,熟人.如果這些都幫助不 ...
  • APACHE SOLR基礎篇
    一.配置和安裝solr1. 首先去apache官方網站下載solr,下載地址http:// ...
  • Java語言出來之前,大家都在拼命的寫C或者C++的程序,而此時存在一個很大的矛盾,C++等語言創建對象要不斷的去開辟空間,不用的時候有需要不斷的去釋放控件,既要寫構造函數,又要寫析構函數,很多時候都在重複的allo ...
  • 檢測是否設置了scaleType="matrix" ImageView是否設置的src的圖片引用或者手動設置setImageXXX 類型的資源.設置背景是無法引用matrix的.
  • python核心編程--第三章
    第三章主要講python的基本語法. 3.1 語句和語法 1) #表示之後的字符爲pyth ...
  • Java多線程學習吐血超詳細總結
             林炳文Evankaka原創作品.轉載請注明出處http://blog.c ...
  • void thread(void*data){     int wait_sig =*(int*)data;     sigset_t sigset;     sigemptyset(&sigset);    ...
  • 一直以爲 Request.QueryString/Form 找不到指定的變量時會返回空字符串.其實不然,Request.QueryString/Form 找不到指定的變量時,返回值的類型是 Empty.Empty 是 ...
  • 球面諧波是編碼的一種方法. 你可以在一個點或者IBL(image-based lighting)上進行環境光遮蔽(DO,directional occlusion)編碼.然後利用它們做疊積運算估算光在那一點上的作用( ...
  • 一:NFS介紹     NFS(Network File System)即網路文件系統,是FreeBSD支持的文件系統中的一種,它允許網路中的計算機之間通過TCP/IP網路共享資源.在NFS的應用中,本地NFS的客戶 ...