nous pensons avoir augmenté le nombre maximum de descripteurs de fichiers ouverts pour l'utilisateur root. Cela a été fait en ajoutant cette ligne à /etc/security/limits.conf:
* - nofile 2048
Nous pensons avoir confirmé que la limite de l'utilisateur root a été augmentée car nous pouvons dire (non décrit ici) que notre application (solr - qui est exécutée par root) a 1098 fichiers ouverts. Cependant, nous ne pouvons pas dire avec certitude combien de fichiers ouverts l'utilisateur root est autorisé. Nous nous attendrions à ce que cette commande fonctionne, mais elle ne semble pas être:
$ sudo -u root -s "ulimit -Sn"
1024
Des idées? Merci!
Réponses:
Obtenez le PID du processus en
solr
cours d'exécution, puiscat /proc/$SOLR_PID/limits
- cela vous indiquera les limites réelles du processus.Je recommanderais d'exécuter des choses comme
solr
un utilisateur non privilégié séparé. En faisant cela, vous avez plusieurs options ( limits.conf ou ajoutez unulimit -n 2048
au script init, ...). Le dernier n'est pas si brillant, mais fonctionne pour les paramètres rapides et le redémarrage du démonRANT: ne me dites pas que vous ne pouvez pas redémarrer car vous perdrez le service. Si c'est le cas, vous devriez quand même avoir une configuration HA :)
la source
Après avoir modifié le nombre de fichiers ouverts
/etc/security/limits.conf
, l'utilisateur doit se déconnecter et se reconnecter pour prendre effet. Alors, essayez ceci:la source
Je sais que cette question a une réponse, mais cela ressemble plus à une solution de contournement, pas à une vraie solution.
Selon ubuntu, ce n'est pas un bug mais un problème de documentation, voir: https://bugs.launchpad.net/ubuntu/+source/pam/+bug/65244
Merci pour votre rapport. Comme vous l'avez dit, ce n'est pas un bug dans pam mais un problème de documentation. Le fait d'autoriser explicitement les limites pour l'utilisateur root a été résolu il y a un certain temps (30 août 2000) mais vous devez nommer explicitement l'utilisateur root pour appliquer les limites.
Donc, si vous souhaitez modifier ulimit sur tous les utilisateurs, y compris l'utilisateur root, vous devez spécifier:
la source