實際中 TCP 連接上肯定是要進行數(shù)據(jù)的收發(fā)的,而且還會有 TIME_WAIT 等其它狀態(tài)。在這些復雜情況下,一條連接占用多大內(nèi)存呢?飛哥用做了七天的實驗結(jié)果告訴你!
實驗1:ESTABLISH空連接
實驗2:客戶端 => 服務(wù)器發(fā)送數(shù)據(jù)測試
實驗3: 服務(wù)器 => 客戶端發(fā)送數(shù)據(jù)測試
實驗4:非 ESTABLISH 狀態(tài)
總結(jié)
我們把實驗中的數(shù)據(jù)來總結(jié)一下
可見,內(nèi)核在 socket 內(nèi)存開銷優(yōu)化上采取了不少方法:
1. 內(nèi)核會盡量及時回收發(fā)送緩存區(qū)、接收緩存區(qū),但高版本做的更好
2. 發(fā)送接收緩存區(qū)最小并一定不是 rmem 內(nèi)核參數(shù)里的最小值,實際可能會更小
3. 其它狀態(tài)下,例如對于TIME_WAIT還會回收非必要的 socket_alloc 等對象
責任編輯:xj
原文標題:漫畫:花了 7 天時間測試,我徹底搞明白了 TCP 的這些內(nèi)存開銷!
文章出處:【微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
協(xié)議
+關(guān)注
關(guān)注
2文章
598瀏覽量
39182 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3002瀏覽量
73887 -
TCP
+關(guān)注
關(guān)注
8文章
1351瀏覽量
78989
原文標題:漫畫:花了 7 天時間測試,我徹底搞明白了 TCP 的這些內(nèi)存開銷!
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論