关于网络最大连接数的问题

有哪位大佬知道这类问题该怎么分析?
比如一台服务器的最大连接数多少?受限于什么?
客户端最大连接数多少?
一台机器能开多少进程?一个进程能开多少线程?
网上很多答案都模糊不清,书上也没看到过。
全部评论
老生常谈的问题,第一个最大连接数受最大打开文件数限制,用ulimit -a 查看。第二个,进程可开线程数受栈的限制,linux下默认栈大小为10M那么最多可开300个线程,windows下栈按1M来算最多可开3000个。但实际小于这个数
点赞 回复 分享
发布于 2017-08-25 00:15
说说第一个。 一台服务器的最大连接数多少?受限于什么?一个TCP连接由双方ip和双方端口确定。服务器一般是固定ip监听一个固定的端口,所以只有客户端ip和客户端端口两个变量,ip32位,端口16位,理论上可以有2^48个连接。 但这是不可能的,就连linux的文件描述符也不过是一个32位整数,哪里可能来48位。更重要的是内存,每个连接在linux中都会维护一系列相关的结构,当内存不够也是不行的。 常见的nginx服务器10w连接是有的,几十万不考虑性能应该也没问题。
点赞 回复 分享
发布于 2017-08-24 23:57
个人见解,仅供参考: 限制主要来自两方面,一是编码限制,比如说内核代码,操作系统代码,协议栈代码等中的限制;二是资源限制,比如内存资源,CPU资源,磁盘资源等,毕竟资源是有限的。 举例: 服务器最大连接数,维护一条连接需要什么资源?以TCP为例,端口号有限,最大为65535。socket 描述符,也是有限的,而且可能编码上会硬性限制单进程拥有的文件描述符个数。广泛点说,内存资源是有限的,维护链接必然需要内存。 说的很泛泛,毕竟我也不是很懂╮(╯▽╰)╭
点赞 回复 分享
发布于 2017-08-24 23:16
别沉啊,抱着求知的态度提问。
点赞 回复 分享
发布于 2017-08-24 23:09

相关推荐

网安已死趁早转行:山东这地方有点说法
点赞 评论 收藏
分享
爱喝奶茶的垂耳兔拥抱太阳:感觉项目和实习没有技术亮点和难点,单纯说了自己干了啥
点赞 评论 收藏
分享
评论
点赞
20
分享

创作者周榜

更多
牛客网
牛客企业服务