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

Posted 天涯泪小武

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了漫画 | 花了七天时间测试,我彻底搞明白了 TCP 的这些内存开销!相关的知识,希望对你有一定的参考价值。

原创 张彦飞allen 开发内功修炼

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

 

实验1:ESTABLISH空连接

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

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

 

 

实验4:非 ESTABLISH 状态

总结

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

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

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

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

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

 

以上是关于漫画 | 花了七天时间测试,我彻底搞明白了 TCP 的这些内存开销!的主要内容,如果未能解决你的问题,请参考以下文章

漫画 | 一台Linux服务器最多能支撑多少个TCP连接?

VS Code 配置 go 开发环境 -(花了一天时间)

第二周(4.23~4.29)

彻底搞明白Spring中的自动装配和Autowired

花了两天时间学习了 sass, less, stylus的基本语法和简单使用, 谈谈感受.

深度长文-我花了10天时间造了个轮子,你们可能会有兴趣