HTTP的KeepAlive是開啟還是關閉?
1、KeepAlive的概念與優勢
HTTP的KeepAlive就是瀏覽器和服務端之間保持長連線,這個連線是可以複用的。當客戶端傳送一次請求,收到相應內容後,這個連線會保持一段時間,在該時間內的第二次就不需要再重新建立連線,就可以直接使用這次的連線來傳送請求了,極大的提高了速度。
2、KeepAlive的劣勢
是不是所有網站都應該開啟KeepAlive了?答案肯定是不是的。KeepAlive在增加訪問效率的同時,也會增加伺服器的壓力。
3、apache配置KeepAlive
apache通過配置KeepAlive和KeepAliveTimeout來控制KeepAlive,具體引數如下:
KeepAlive On/Off (可以設定開啟On或者是關閉Off)
KeepAliveTimeout 10 (持久連線保持的時間,到時間會斷開連結)
4、案例說明(來源網際網路):
假設 KeepAlive 的超時時間為 10 秒種,伺服器每秒處理 50 個獨立使用者訪問,那麼系統中Apache的總程式數就是 10 * 50 = 500 個,如果一個程式佔用 4M 記憶體,那麼總共會消耗2G記憶體,所以可以看出,在這種配置中,相當消耗記憶體,但好處是系統只處理了 50次 TCP 的握手和關閉操作。
如果關閉 KeepAlive,如果還是每秒50個使用者訪問,如果使用者每次連續的請求數為3個,那麼 Apache 的總程式數就是 50 * 3 = 150 個,如果還是每個程式佔用 4M 記憶體,那麼總的記憶體消耗為600M,這種配置能節省大量記憶體,但是,系統處理了 150 次 TCP 的握手和關閉的操作,因此又會多消耗一些 CPU 資源。
5、總結
(1)如果記憶體和CPU都足夠,開啟和關閉KeepAlive對效能影響不大。
(2)如果考慮伺服器壓力,如果是靜態頁面,大量的呼叫js或者圖片的話,建議開啟KeepAlive;如果是動態網頁,建議關閉KeepAlive。
相關文章
- win10防火牆關閉還是開啟好_win10防火牆關閉開啟有什麼影響Win10防火牆
- Android,開源還是封閉?Android
- HTML標籤 閉合還是不閉合?HTML
- HTML標籤,閉合還是不閉合?HTML
- TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一個東西嗎?TCPHTTPKeep-Alive
- cortana是什麼軟體 cortana小娜可以關閉不開啟嗎
- Oracle 11G RAC OS開啟後叢集元件開啟但DB依然是關閉Oracle元件
- 檢視 Oracle 是用spfile 啟動還是 pfile 啟動Oracle
- HTTP代理,HTTPS代理還是SOCKS代理?HTTP
- 直播未來屬於RTMP還是HTTP?HTTP
- Mongodb開啟與關閉MongoDB
- SElinux的開啟和關閉Linux
- win10系統重啟後總是自動開啟未關閉程式如何解決Win10
- VUE:點選開啟的對話方塊外面時,對話方塊總是被關閉Vue
- Linux最底層是封閉的 確有其事還是專家出錯?Linux
- nginx 開啟、關閉、重啟常用操作Nginx
- 開啟與關閉oracle的歸檔Oracle
- 開啟/關閉子系統的命令
- oracle 開啟、關閉歸檔Oracle
- windows 之醬紫判斷是UEFI還是legacy啟動Windows
- JAVA關於判斷年份是閏年還是平年的問題Java
- 關於:ERP做成EXCEL,是成功還是失敗 的補充Excel
- win10系統總是提示“啟用Windows防火牆”如何關閉Win10Windows防火牆
- Linux防火牆的關閉和開啟Linux防火牆
- powershell 關閉遠端開啟的檔案
- .NET開源的背後:是無奈,還是順應潮流?
- VPN伺服器是指什麼?我怎樣控制自己的電腦埠的開啟和關閉?伺服器
- ubuntu 開啟/關閉ubuntu防火牆Ubuntu防火牆
- centos:開啟和關閉selinuxCentOSLinux
- java開閉原則是什麼?Java
- HTTP客戶端連線,選擇HttpClient還是OkHttp?HTTP客戶端client
- 開啟、關閉防火牆或者開放埠防火牆
- 閉包概念是掌握React.JS的關鍵 - NitsanReactJS
- 判斷伺服器最後一次啟動是熱啟動還是冷啟動伺服器
- Linux防火牆的關閉、開啟和配置Linux防火牆
- win7休眠的開啟與關閉方法Win7
- Web開發的窘境:碼還是不碼?Web
- 面向構件的開發:SCA還是SOA?