Mon Apache génère des erreurs 500 Internal Server Error et des journaux comme celui-ci :
> [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
J'ai augmenté les limites du FD à l'intérieur :
cat /usr/include/bits/typesizes.h | grep FD
#define __FD_SETSIZE 65536
et
cat /usr/include/linux/posix_types.h | grep FD_SETSIZE
#undef __FD_SETSIZE
#define __FD_SETSIZE 65536
#define __FDSET_LONGS (__FD_SETSIZE/__NFDBITS)
et aussi
/sbin/sysctl fs.file-max
fs.file-max = 512000
ulimit -n
1000000
mais cela n'a pas aidé. Mon Apache continue de se planter s'il y a plus de 350 virtualhosts :/
Je suis sur CentOS 5.9 64-bit - kernel 3.0.65-1.el5.elrepo
0 votes
Veuillez noter que le "fd_set" est une structure du noyau, la modification de FD_SETSIZE nécessiterait la recompilation du noyau lui-même. Sinon, le noyau utilisera toujours un maximum de la valeur originale. De plus, la valeur normale par défaut est fixée à 1024, ce qui utilise 128 octets de mémoire, alors que 65536 nécessite 8k de mémoire par structure.