trouvé ça…http://www.linuxplusvalue.be/mylpv.php?id=203
Il faut d’abord savoir que tout process a au moins 3 descripteurs de fichiers : stdin, stdout et stderr en plus des fichiers qu’il ouvre par la suite.
La première limite à connaitre est system-wide. Il s’agite de la valeur du fichier /proc/sys/fs/file-max. Par défaut elle vaut 8192 (voir [2] NR_FILE) et représente la limite totale du nombre de descripteurs de fichiers qui peuvent être ouverts simultanément dans tout le système. La valeur se change dynamiquement des manières suivantes qui sont équivalentes :
# echo value > /proc/sys/fs/file_max
ou
# sysctl -w sys.fs.file_max=value
Pour que cela survive au reboot il faut insérer sys.fs.file_max=value dans /etc/sysctl.conf.
La valeur courante du nombre de descripteurs de fichiers se trouve dans /proc/sys/fs/file-nr. Ce fichier contient trois valeurs dans l’ordre :
- nombre maximum de descripteurs de fichiers alloués (i.e ouverts simultanéments depuis le boot).
- nombre de descripteurs de fichiers utilisés à l’instant
- nombre maximum de descripteurs de fichiers possibles (valeur de file-max)
Il y a une valeur limite à ce nombre de fichiers ouverts qui est fixée dans [2] NR_OPEN et vaut 1024*1024.
Limite par utilisateurs
A partir de là on peut s’intéresser aux limités fixées par user. La première valeur, est [2] INR_OPEN et vaut 1024. C’est cette valeur qui est prise par défaut pour fixer la valeur de ulimit -n (nofile). Cette valeur est réglable dynamiquement dans le shell en utilisant la commande ulimit -n mais on ne peut dépasser la limite fixée dans /etc/security/limits.conf de deux manières :
- valeur par défaut de ulimit, limite soft. La ligne :
vincent soft nofile 2048
mettra une valeur par défaut de 2048 à nofile pour tout process de l’utilisateur vincent.
- la valeur maximale autorisée pour les process de l’utilisateur. La ligne :
vincent hard nofile 4096
Permet à l’utilisateur vincent d’augmenter le nombre de fichiers ouverts autorisés jusqu’à 4096 mais pas au dela.
[vincent@sauron ~ 12:28:44] ulimit -n 4097
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Pour fixer le nombre de fichiers ouverts autorisés pour un utilisateur à une unique valeur il suffit de positionner la valeur hard égale à la valeur soft, mais attention à ce que cette valeur soit toujours sctrictement inférieure à file-max sinon on risque d’épuiser le nombre de fichiers ouverts accessibles aux process système.
trouvé ça…http://www.linuxplusvalue.be/mylpv.php?id=203
Il faut d’abord savoir que tout process a au moins 3 descripteurs de fichiers : stdin, stdout et stderr en plus des fichiers qu’il ouvre par la suite.
La première limite à connaitre est system-wide. Il s’agite de la valeur du fichier /proc/sys/fs/file-max. Par défaut elle vaut 8192 (voir [2] NR_FILE) et représente la limite totale du nombre de descripteurs de fichiers qui peuvent être ouverts simultanément dans tout le système. La valeur se change dynamiquement des manières suivantes qui sont équivalentes :
# echo value > /proc/sys/fs/file_max
ou
# sysctl -w sys.fs.file_max=value
Pour que cela survive au reboot il faut insérer sys.fs.file_max=value dans /etc/sysctl.conf.
La valeur courante du nombre de descripteurs de fichiers se trouve dans /proc/sys/fs/file-nr. Ce fichier contient trois valeurs dans l’ordre :
- nombre maximum de descripteurs de fichiers alloués (i.e ouverts simultanéments depuis le boot).
- nombre de descripteurs de fichiers utilisés à l’instant
- nombre maximum de descripteurs de fichiers possibles (valeur de file-max)
Il y a une valeur limite à ce nombre de fichiers ouverts qui est fixée dans [2] NR_OPEN et vaut 1024*1024.
Limite par utilisateurs
A partir de là on peut s’intéresser aux limités fixées par user. La première valeur, est [2] INR_OPEN et vaut 1024. C’est cette valeur qui est prise par défaut pour fixer la valeur de ulimit -n (nofile). Cette valeur est réglable dynamiquement dans le shell en utilisant la commande ulimit -n mais on ne peut dépasser la limite fixée dans /etc/security/limits.conf de deux manières :
- valeur par défaut de ulimit, limite soft. La ligne :
vincent soft nofile 2048
mettra une valeur par défaut de 2048 à nofile pour tout process de l’utilisateur vincent.
- la valeur maximale autorisée pour les process de l’utilisateur. La ligne :
vincent hard nofile 4096
Permet à l’utilisateur vincent d’augmenter le nombre de fichiers ouverts autorisés jusqu’à 4096 mais pas au dela.
[vincent@sauron ~ 12:28:44] ulimit -n 4097
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Pour fixer le nombre de fichiers ouverts autorisés pour un utilisateur à une unique valeur il suffit de positionner la valeur hard égale à la valeur soft, mais attention à ce que cette valeur soit toujours sctrictement inférieure à file-max sinon on risque d’épuiser le nombre de fichiers ouverts accessibles aux process système.
Documentation :
- [1] /usr/src/linux/Documentation/filesystems/proc.txt
- [2] /usr/include/linux/fs.h
une fois ceci résolu, sinon, tu as aussi la mémoire qui peut être une limite, mais la, ça dépend de ta bécanne