FAQ n°4345, publiée le 19/10/2011, mise à jour le 12/06/2017
WINDEV, WEBDEV, WINDEV MOBILE
Que faire si un message "Too many open files" est affiché lors de l'accès à un fichier HyperFileSQL Client/Serveur installé sur un serveur Linux ?
Ce retour provient du système Linux lui-même, qui par défaut limite du nombre de "handles" ouverts :
  • globalement sur le serveur pour tous les processus,
  • pour chaque utilisateur (root par défaut) du serveur Linux, pour tous les processus qu'il exécute.
En cas de besoin il est possible de repousser ces limites en intervenant sur la configuration du serveur Linux. De façon générale les fichiers suivants sont à modifier :  
  • limite du nombre de handles au niveau de la machine : fichier /etc/sysctl.conf à la  ligne fs.file-max.
  • limite du nombre de handles au niveau de utilisateur : fichier /etc/security/limits.conf (sous la forme <utilisateur> <Type> <item> <valeur>) 

Lors Linux utilise systemd, il faut ajouter une directive LimitNOFILE=8192:16384 dans la description du service (https://www.freedesktop.org/software/systemd/man/systemd.exec.html)

Dans les deux cas il faut que la limite du kernel soit supérieure.


La recherche de "too many open files <votre distribution>" sur Internet permet d'obtenir le détail des modifications nécessaires pour une distribution Linux donnée.

Le billet suivant du blog HyperFileSQL permet d'évaluer les besoins nécessaires en fonction des bases de données hébergées par un serveur :