linux select 并发连接上不去

一般linux下TCP连接的限制在TD_SETSIZE,系统默认为1024,由FD_SETSIZE决定。

1.修改方法:
  修改/usr/etc/security/limits.conf文件,加入
    *soft nofile 20000
    *hard nofile 20000
  然后reboot系统。
服务器就可以建立连接到20000个了,其连接方法是直接用connect,accept。


注意这里用select是不可以的,在windows上FD_SETSIZE默认64但是并不影响select的并发数!

2.上面的方法在不用select方法的情况下是不可以的,如果你用select,
那么仍然只能打开1024个,这是因为select的数目由FD_SETSIZE决定的。
那么我们可以改用poll来替代select,poll数组大小可以根据我们自己的需要来定义,
这样就解决了这个问题。

也可以重新定义FD_SETSIZE的大小来改变select监视最大并发连接数。


3.linux中的是通过文件方式来管理系统的,因此系统能承载多少TCP连接和系统文件打
开数目能力是相关的。
另外在/proc/sys/fs/file-max中定义了,系统最多能够打开的文件数目。

展开阅读全文

没有更多推荐了,返回首页