7 votes

Comment augmenter "ulimit -u" (nombre maximum de processus utilisateur) ?

Je peux modifier toutes les limites habituelles via (par exemple) ulimit -n 8192 y launchctl limit maxfiles 8192 8192 . D'une manière ou d'une autre, cela ne semble pas fonctionner pour les -u le nombre maximal de processus utilisateur :

~$ sudo launchctl limit maxproc 8192 8192
~$ sudo launchctl limit maxproc
    maxproc     2048           2048
-- in a new terminal:
~$ ulimit -u
1064

J'obtiens un "failed to fork" de temps en temps, et c'est assez ennuyeux de devoir tuer un tas de processus quand "kill" ne peut pas démarrer :). (c'est-à-dire que j'ai généralement recours au redémarrage de la machine).

Quelle est la bonne façon de modifier le nombre maximal de processus utilisateur ?

5voto

intuited Points 912

http://blog.ghostinthemachines.com/2010/01/19/mac-os-x-fork-resource-temporarily-unavailable/ aborde cette question de manière très détaillée.

Lorsque vous le faites sudo launchctl limit maxproc vous affichez ou modifiez les limites de launchd pour l'ensemble du système.

Lorsque vous le faites launchctl limit maxproc vous affichez ou modifiez les limites de launchd pour votre utilisateur.

Une chose à garder à l'esprit est la suivante :

L'utilisateur root peut augmenter les limites de sécurité de l'ordinateur. sans redémarrage. Cependant, vous ne pouvez pas modifier les limites dures de launchd d'un utilisateur sans redémarrer le système. d'un utilisateur sans redémarrage (même si vous essayez de le faire en tant qu'utilisateur racine).

En principe, la limite stricte (colonne de droite) qui s'affiche lorsque vous effectuez la première étape de la procédure d'autorisation de mise sur le marché (AMM) est la suivante launchctl limit maxproc sera la limite que vous pouvez fixer en utilisant ulimit -u sans redémarrer. Se déconnecter et se reconnecter ne fonctionnera pas. Même si vous modifiez ce qui est affiché par launchctl limit maxproc la limite dure initiale demeure. Voir aussi cette réponse pour plus d'informations sur la relation entre ulimit y launchctl limit . Pour relever cette limite, il faut

  • éditer/créer /etc/sysctl.conf pour augmenter le nombre maximum de processus pris en charge par le noyau

    kern.maxproc=2500
    kern.maxprocperuid=2500
  • éditer/créer /etc/launchd.conf pour augmenter les limites de l'application launchd au démarrage du système

    limit maxproc 2500 2500
  • redémarrage

Notez également que 2500 semble être la limite maximale que l'on peut atteindre. kern.maxproc peut être défini. Je poserai une question à ce sujet dès que j'aurai redémarré et que j'aurai suffisamment de processus libres pour ouvrir un autre onglet Chrome.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X