漫画 | 花了七天时间测试,我彻底搞明白了 TCP 的这些内存开销!

点击上方蓝字"开发内功修炼",关注并设为星标

飞哥的硬核文章将第一时间送达~~~

实际中 TCP 连接上肯定是要进行数据的收发的,而且还会有 TIME_WAIT 等其它状态。在这些复杂情况下,一条连接占用多大内存呢?飞哥用做了七天的实验结果告诉你!

实验1:ESTABLISH空连接


实验2:客户端 => 服务器发送数据测试


实验3: 服务器 => 客户端发送数据测试

实验4:非 ESTABLISH 状态

总结

我们把实验中的数据来总结一下

可见,内核在 socket 内存开销优化上采取了不少方法:

  • 1. 内核会尽量及时回收发送缓存区、接收缓存区,但高版本做的更好

  • 2. 发送接收缓存区最小并一定不是 rmem 内核参数里的最小值,实际可能会更小

  • 3. 其它状态下,例如对于TIME_WAIT还会回收非必要的 socket_alloc 等对象

开发内功修炼之网络篇专辑:

据说转发、点赞、点在看的都会变的更帅!????

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值