Linux(Centos)支持最大的SOCKET连接数量是多少?
并发socket连接数的多少决定于系统资源的多少,没有一个常蔽陵值的.在实际开发或者亩弊linux系统管理中也会根据需要进行相应的设置.
1.一般来说每一个网络连接,都会建立相应的socket句柄,迅并族同时每个连接也会有标准输入输出等基本的文件文件句柄,而且每一个socket连接都是进行文件操作的,因此连接数决定于系统资源.
2.Linux上一般可以通过ulimit来进行相应的资源限制,默认能打开的文件描述符自己可以查看.如下图所示:
3.ulimit的命令格式:ulimit [-acdfHlmnpsStvw] [size]
参数说明:
-H 设置硬资源限制.
-S 设置软资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes
-u <程序数目> 用户最多可开启的程序数目
基本无限制,百万级是小事,千万也可以。看你内存了。
1、单个进程,最大文件句柄数(包括socket套接字)是1024,可以通过 ulimit -n, 这个是默认值,可以用ulimit修改;参考http://www.centoscn.com/CentOS/Intermediate/2013/1114/2106.html
2、可以在程序内容进行设置,
#include <sys/time.h>
#include <带渣sys/resource.h>
int getrlimit(int resource, struct rlimit *rlim);
滚山 int setrlimit(int resource, const struct 大行中rlimit *rlim);