HTTP的KeepAlive是開啟還是關閉?

2022-01-11 20:47:38 字數 1024 閱讀 3705

http的keepalive是開啟還是關閉?

1、keepalive的概念與優勢

http的keepalive就是瀏覽器和服務端之間保持長連線,這個連線是可以復用的。當客戶端傳送一次請求,收到相應內容後,這個連線會保持一段時間,在該時間內的第二次就不需要再重新建立連線,就可以直接使用這次的連線來傳送請求了,極大的提高了速度。 

2、keepalive的劣勢

是不是所有**都應該開啟keepalive了?答案肯定是不是的。keepalive在增加訪問效率的同時,也會增加伺服器的壓力。 

3、apache配置keepalive

apache通過配置keepalive和keepalivetimeout來控制keepalive,具體引數如下:

keepalive  on/off            (可以設定開啟on或者是關閉off) 

keepalivetimeout  10    (持久連線保持的時間,到時間會斷開鏈結) 

假設 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。 

HTTP的KeepAlive是開啟還是關閉?

1 keepalive的概念與優勢 http的keepalive就是瀏覽器和服務端之間保持長連線,這個連線是可以復用的。當客戶端傳送一次請求,收到相應內容後,這個連線會保持一段時間,在該時間內的第二次就不需要再重新建立連線,就可以直接使用這次的連線來傳送請求了,極大的提高了速度。2 keepaliv...

Http的持久連線(Keep Alive模式)

關於持久連線 http 1.1允許http裝置在事務處理結束之後將tcp連線保持在開啟狀態,以便為未來的http請求重用現存的連線。在事務處理結束之後仍然保持在開啟狀態的tcp連線被稱為持久連線。持久連線會在不同事務之間保持開啟狀態,直到客戶端或伺服器決定將其關閉為止。優點 重用已對目標伺服器開啟的...

http包中keepalive問題

toc 測試之前,需要把client作為全域性變數,公用客戶端 定義客戶端,然後關閉keepalive http 客戶端 定義get請求的header req.header.add user agent 獲取respoes client.do req 可以看到全部都是established狀態,並且...