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