TCP 最大连接数
讨论:一个进程支持打开多大数目的socket描述符
linux网络编程:NIO:select poll epoll
select 所打开的FD是有一定限制的,由FD_SETSIZE设置,默认值是1024。
poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态, 但是它没有最大连接数的限制,原因是它是基于链表来存储的。但是效率上来讲和select相同,都是O(n)的时间复杂度。
epoll的存在: epoll则没有最大连接数的限制,它所支持的FD上限是最大可以打开文件的数目,这个数字一般远大于2048,举个例子,在1GB内存的机器上大约是10万左右,具体数目可以cat /proc/sys/fs/file-max
查看,一般来说这个数目和系统内存关系很大。