Sous Linux, définissez le nombre maximum de fichiers ouverts sur illimité. Possible?

StackOverflow https://stackoverflow.com/questions/1212925

  •  06-07-2019
  •  | 
  •  

Question

Est-il possible de définir le nombre maximal de fichiers ouverts sur une " infinie " valeur ou doit-il être un nombre?

J'étais obligé de définir la limite de descripteur pour un utilisateur de démon sur " unlimited " et j'essaie de déterminer si c'est possible ou comment le faire. J'ai vu des listes de diffusion se référer à un & Quot; max & Quot; valeur pouvant être utilisée (comme dans: & "; monutilisateur nofile max &"; mais, jusqu'à présent, les pages de manuel et les références que j'ai consultées ne la corrigent pas.

Si je ne peux pas utiliser 'max' ou similaire, j'aimerais savoir comment déterminer le nombre maximal de fichiers (en théorie) afin d'avoir une base pour le nombre que je choisis. Je ne veux pas utiliser 100000000 ou quelque chose du genre s'il existe un moyen plus raisonnable d'obtenir une limite supérieure.

J'utilise RHEL 5 si c'est important.

Mise à jour: je suis un idiot pour écrire des questions. Idéalement, j'aimerais le faire dans le fichier limits.conf (d'où provient & "Max &"). Est-ce que cela change les réponses?

Merci pour les commentaires. C'est pour une instance JBOSS et non pour un démon que j'écris, donc je ne sais pas si setrlimit () m'est utile. Cependant, Jefromi - j'aime bien la définition d'Infinity :) J'ai vu un article suggérant qu'un descripteur de fichier est & "; Deux courts métrages et un pointeur &"; je devrais donc pouvoir calculer la limite supérieure approximative.

Était-ce utile?

La solution

POSIX vous permet de définir la RLIMIT_NOFILE limite de ressources sur RLIM_INFINITY à l'aide de setrlimit() . Cela signifie que le système n'appliquera pas cette limite de ressources. Bien entendu, vous serez toujours limité par la mise en œuvre (par exemple, MAXINT) et par toute autre limitation de ressources (par exemple, la mémoire disponible).

Mise à jour: RHEL 5 a une valeur maximale de 1048576 (2 20 ) pour cette limite (NR_OPEN dans /usr/include/linux/fs.h) et n'acceptera aucune valeur supérieure. valeur incluant l'infini, même pour root. Ainsi, sous RHEL 5, vous pouvez utiliser cette valeur dans /etc/security/limits.conf et elle est aussi proche que possible de l'infini.

Il n'y a pas longtemps un correctif du noyau Linux a été appliqué pour permettre à cette limite d'être définie à l'infini, cependant il a depuis été annulé comme résultat de conséquences inattendues .

Autres conseils

Essayez la ligne

<domain>    -

en remplaçant <domain> par le nom d'utilisateur, dans le cas le plus simple.

La page de manuel de limits.conf indique

-
    for enforcing both soft and hard resource limits together.

    Note, if you specify a type of '-' but neglect to supply the
    item and value fields then the module will never enforce any
    limits on the specified user/group etc. .
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top