linux – 套接字文件描述符(1063)大于FD_SETSIZE(1024),你可能需
我的Apache正在抛出内部服务器错误500错误并记录如下:
> [Sun Apr 07 23:35:24 2013] [error] [client 124.162.30.45] (2)No such > file or directory: FastCGI: failed to connect to server > "/home/magda_00aa/sportxxx.pl/sportxxx.pl.0fake": socket file > descriptor (1063) is larger than FD_SETSIZE (1024),you probably need > to rebuild Apache with a larger FD_SETSIZE,referer: > http://www.surf4web.com/surfing.php?id=haoduodeng2012 我已经提升了内部的FD限制: cat /usr/include/bits/typesizes.h | grep FD #define __FD_SETSIZE 65536 和 cat /usr/include/linux/posix_types.h | grep FD_SETSIZE #undef __FD_SETSIZE #define __FD_SETSIZE 65536 #define __FDSET_LONGS (__FD_SETSIZE/__NFDBITS) 并且 /sbin/sysctl fs.file-max fs.file-max = 512000 ulimit -n 1000000 但它没有帮助.如果超过350个虚拟主机,我的Apache仍会崩溃:/ 我在CentOS 5.9 64位 – 内核3.0.65-1.el5.elrepo 解决方法
这是因为mod_fastcgi使用select()作为多路复用选项.
选择对于这个东西非常糟糕,手册页指定选择;
FD_SETSIZE通常为1024,因此通常不支持超过1024的文件描述符.你可以像你所做的那样摆弄FD_SETSIZE包含的大小,但是这样的更改可能会影响其他程序,这些程序的目标是POSIX兼容. 我建议离开mod_fastcgi并使用另一个实现.取决于你的FastCGI守护进程的盯着方式取决于你如何做到这一点. mod_fcgid是一个选项,或者较新的apach可以使用mod_proxy_fcgi. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |