当前位置: 技术问答>linux和unix
问大家一个弱智的问题:一台机器(linux)做为服务器最多可以创建多少个tcp连接?
来源: 互联网 发布时间:2015-09-22
本文导语: 如果我是针对每个连接创建一个线程,是不是单个进程的数目就受可创建线程数限制 而系统全部可创建进程数则只受CPU和内存的限制? 能不能介绍一下用何种方式来实现最大数目的网络连接数? | ...
如果我是针对每个连接创建一个线程,是不是单个进程的数目就受可创建线程数限制
而系统全部可创建进程数则只受CPU和内存的限制?
能不能介绍一下用何种方式来实现最大数目的网络连接数?
而系统全部可创建进程数则只受CPU和内存的限制?
能不能介绍一下用何种方式来实现最大数目的网络连接数?
|
tcp_max_tw_buckets 参数类型:整型
系统在同时所处理的最大timewait sockets 数目。如果超过此数的话﹐time-wait socket 会被立即砍除并且显示警告信息,默认值180000
tcp_max_syn_backlog 参数类型:整型
对于那些依然还未获得客户端确认的连接请求﹐需要保存在队列中最大数目。对于超过 128Mb 内存的系统﹐默认值是 1024 ﹐低于 128Mb 的则为 128。
系统可创建的最大进程为4090个
系统在同时所处理的最大timewait sockets 数目。如果超过此数的话﹐time-wait socket 会被立即砍除并且显示警告信息,默认值180000
tcp_max_syn_backlog 参数类型:整型
对于那些依然还未获得客户端确认的连接请求﹐需要保存在队列中最大数目。对于超过 128Mb 内存的系统﹐默认值是 1024 ﹐低于 128Mb 的则为 128。
系统可创建的最大进程为4090个
|
这取决于多种因素,首先实线程数的问题,系统通常限制每个进程最多可创建4096个线程,当然我们也无法确保能创建到1024个线程,因为这个数值也与当前系统中的总进程数有关,同时也与系统的可用内存相关。第二个问题是关于最大连接的,系统的头文件定义select最多可监听1024个套接字,所以如果采用select进行多路复用的话,通常的连接被限制在1024个以内,而如果采用poll的方式则没有这个限制,另外默认情况下系统限制每个进程最多可打开1024个文件描述符,这也限制了套接字的个数,所以应该采用ulimit放宽这个限制。