Linux 下关于 epoll 并发链接限制
在服务器开发压力测试的时候,发现超过 1000 个链接便会造成 errno:24 的错误,这个错误解释就是 Too many open files。 这个错误发生的原因便是 Linux 默认会有一个链接限制。 之前一直以为最大链接限制是在这里看的。
1 cat/proc/sys/fs/file-max Google了一番找到了问题的根源。 以下内容摘取自:http://www.cnblogs.com/tankaixiong/p/4064708.html
Linux 服务器大并发调优时,往往需要预先调优 Linux 参数,其中修改 Linux 最大文件句柄数是最常修改的参数之一。
在 Linux 中执行 ulimit -a 即可查询 Linux 相关的参数,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [root@mongodb11 ~]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 256324 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 256324 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 默认情况下,Linux 最大文件句柄数为 1024 个。当你的服务器在大并发达到极限时,就会报出 “too many open files”。