http://www.bubuko.com/infodetail-769475.htmlphp
查看了core文件,反复理清程序的思路,都找不到问题点。更让我费解的是,经过注释部分代码(都是局部变量相关的),结果程序变成socket链接到达1500左右时发生段错误。html
后来想到试试是否是select有问题,模拟程序不调用select,所有采用阻塞的socket,结果测试到10000个socket链接都没有问题。app
最后在网上看到select中限定的fd的值最大值是FD_SETSIZE(个人环境下是1024),而不是个数。socket
也有人持反对意见,好比对值为1025的fd进行select也没问题。对此我没有测试,但结合个人实际状况是,对超过1024的fd进行select,问题不能马上暴露(我都一直到1500了),但可能会存在测试
相似越界访问之类的问题(segment fault)。ui
以前还一直想不通,一直觉得是相似ulimit的限制没有修改。但矛盾的是相同的配置,用poll/epoll写的服务端却能够测试到10K以上,如今终于了然。url