在网络开发中,许多开发者对一个基本问题感到困惑:一台服务器到底能支持多少个网络连接?本文将详细探讨这一问题,并为您提供清晰的解答。
很多人首先想到的答案是65535。理由是:“听说端口号最多有65535个,所以长连接最多只能保持65535个。”这种说法正确吗?还有人认为:“应该受到TCP连接中四元组空间大小的限制,计算下来大约是200多万亿个!”
如果您对这个问题也感到困惑,请听我讲一个故事!
关于服务器端并发的聊天


系统级:当前系统可打开的最大文件数量,可以通过fs.file-max参数进行修改。用户级:指定用户可打开的最大文件数量,可以通过修改/etc/security/limits.conf文件进行设置。进程级:单个进程可打开的最大文件数量,可以通过fs.nr_open参数进行修改。

$ sysctl -a | grep rmemnet.ipv4.tcp_rmem = 4096 87380 8388608net.core.rmem_default = 212992net.core.rmem_max = 8388608

$ sysctl -a | grep wmemnet.ipv4.tcp_wmem = 4096 65536 8388608net.core.wmem_default = 212992net.core.wmem_max = 8388608

服务端百万连接达成记



MOKI
MOKI是美图推出的一款AI短片创作工具,旨在通过AI技术自动生成分镜图并转为视频素材。
375 查看详情
活动连接数量确实达到了100万:
$ ss -n | grep ESTAB | wc -l1000024
当前机器内存总共是3.9GB,其中内核Slab占用了3.2GB之多。MemFree和Buffers加起来也只剩下100多MB了:
$ cat /proc/meminfoMemTotal: 3922956 kBMemFree: 96652 kBMemAvailable: 6448 kBBuffers: 44396 kB......Slab: 3241244KB kB
通过slabtop命令可以查看到densty、flip、sock_inode_cache、TCP四个内核对象都分别有100万个:


结语
互联网后端的一个业务特点就是高并发。然而,一台服务器最大究竟能支持多少个TCP连接,这个问题似乎却又在困惑着很多人。希望今天过后,您能够对这个问题有更深入的理解。
学习是一件痛苦的事情,尤其是在一天工作结束后再来看技术文章。我一直都在思考如何组织技术内容,以便让大家更轻松地理解。这篇关于服务器最大并发数的文章我已经酝酿很久了,之前写了几个版本都不满意。今天终于找到了一种让大家更容易理解的方式,算是过了自己这一关。
下次我们再来探讨客户端,敬请期待!!
以上就是漫画 | 一台Linux服务器最多能支撑多少个TCP连接?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/816062.html
微信扫一扫
支付宝扫一扫