“Max ouvrir des fichiers” pour les processus de travail
Est-il possible d'augmenter "Max ouvrir les fichiers" paramètre de processus de travail ?
Je veux dire ce paramètre:
cat /proc/<pid>/limits | grep files
Merci pour vos conseils
Plus d'infos: mon processus est "java". J'ai besoin d'augmenter “Max ouvrir les fichiers” sans interrompre le processus.
OriginalL'auteur wako | 2010-09-17
Vous devez vous connecter pour publier un commentaire.
En tant qu'administrateur système: Le
/etc/security/limits.conf
fichier de contrôle ce sur la plupart des installations de Linux; il vous permet de définir des limites de l'utilisateur. Vous aurez envie d'une ligne commemyuser - nofile 1000
.Au sein d'un processus: Le getrlimit et setrlimit appels contrôle plus par processus d'allocation de ressources limites.
RLIMIT_NOFILE
contrôle le nombre maximal de descripteurs de fichiers. Vous devez disposer des autorisations appropriées pour l'appeler.Je ne sais pas du tout. Si il y est, je soupçonne que vous trouverez qu'il est enterré profondément dans certains spécifiques à Linux-guide de programmation, parce que je ne peux pas imaginer où d'autre norme POSIX mettrait.
Parfois
limits.conf
n'est pas pris en compte et vous devez réglerDefaultLimitNOFILE
dans/etc/systemd/system.conf
etuser.conf
.OriginalL'auteur
Une autre option est d'utiliser le prlimit commande (à partir du paquet util-linux). Par exemple, si vous souhaitez définir le nombre maximal de fichiers ouverts pour un processus:
Je suis sous linux mint (Ubuntu) et je ne le trouve pas dans l'installation par défaut. Normalement, il fait partie du paquet util-linux, mais veille à ce paquet sur la Menthe n'apporte pas cette commande.
➜ ~ lsb_release -d Description: Ubuntu 16.04.1 LTS ➜ ~ whereis prlimit prlimit: /usr/bin/prlimit /usr/share/man/man2/prlimit.2.gz /usr/share/man/man1/prlimit.1.g
Ok, je ne le trouve pas dans la monnaie. Je vais modifier la réponse.
Je ne trouve pas prlimit sur CentOS 6.
OriginalL'auteur
Vieux thread, je sais.
Vous pouvez utiliser gdb, pause dans le processus d'appel de ladite appels d'augmenter la limite qui vous intéresse, puis de continuer le travail et la sortie de gdb. J'ai édité les choses à la volée de cette façon, un certain nombre de fois.
Votre application ne sera pas de la bas, mais juste gelé pour le moment, alors que vous avez effectué l'appel. si vous êtes rapide (ou le script!), ça risque de ne pas être visibles.
+1 très bonne suggestion, ce post et blog décrire comment le faire.
Ouais, c'est un peu comme le peaufinage de la Matrice de faire fonctionner les choses... arrêtez le monde, de modifier une variable, continuer le monde... oh! DeJaVu! Je suis le seul! (eh bien, quand j'ai gdb!)
Moderne de la distribution Linux, vous pouvez utiliser
prlimit
OriginalL'auteur
Oui, il est possible d'augmenter les limites dans
/proc/<pid>/limits
au moment de l'exécution. Il suffit de trouver le pid et exécuter la commande ci-dessous:
OriginalL'auteur
Ce lien les détails de la façon de modifier cette à l'échelle du système ou par utilisateur.
Il ne peut pas être fait de l'extérieur de l' (sauf si vous utilisez l'un des derniers développements en matière de noyaux, ce qui est peu probable)
Merci. C'est exactement ce que je voulais entendre.
OriginalL'auteur
...travaille dans RHEL5.5 et RHEL6.7.
Noter que le "-n" est obligatoire; une fuite de saut de ligne va générer une plainte au sujet d'arguments non valides.
OriginalL'auteur
Les commandes suivantes donnent le nombre maximal de fichiers ouverts par processus permise par les limites par défaut (tendre et dur, respectivement):
Vous pouvez utiliser un programme ou une commande pour modifier ces limites. Regardez ulimit (homme ulimit).
OriginalL'auteur