首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

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

实验1:ESTABLISH空连接

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

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

实验4:非 ESTABLISH 状态

总结

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

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

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

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

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210112A01KH500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券