J'essaie de faire quelque chose qui nécessite un grand nombre de descripteurs de fichiers
sudo ulimit -n 12288
est aussi haut que Snow Leopard veut aller; au-delà, cela se traduit par
/ usr / bin / ulimit: ligne 4: ulimit: fichiers ouverts: impossible de modifier la limite: argument invalide.
Je veux augmenter le nombre beaucoup plus haut, disons 100000. Est-ce possible?
mac
osx-snow-leopard
ulimit
file-descriptors
Chris Poole
la source
la source
echo limit maxfiles 10000 10000|sudo tee -a /etc/launchd.conf
et redémarrer fonctionne pour moi dans Mavericks.Réponses:
L'utilisation de la
ulimit
commande ne change que les limites de ressources pour le shell actuel et ses enfants etsudo ulimit
crée un shell racine, ajuste ses limites, puis quitte (ainsi, à ma connaissance, aucun effet réel).Pour dépasser 12288, vous devez ajuster les paramètres
kern.maxfiles
et leskern.maxfilesperproc
paramètres du noyau, ainsi qu'une limite de lancement (au moins d'après cette entrée de blog , qui est un résumé de cette discussion ). Vous pouvez utiliserlaunchctl limit
pour régler tous ces éléments simultanément:Pour rendre cela permanent (c'est-à-dire non réinitialisé lorsque vous redémarrez), créez
/etc/launchd.conf
contenant:Ensuite, vous pouvez utiliser
ulimit
(mais sans lesudo
) pour ajuster votre limite de processus.Si cela ne le fait pas, vous risquez de rencontrer des limites de taille dans le noyau. Si votre modèle le prend en charge , l’initialisation du noyau en mode 64 bits peut être utile.
la source
sudo launchctl limit maxfiles 1000000 unlimited
Ni la limite stricte ni la limite souple pour les "maxfiles" ne peuvent être illimitées. Veuillez utiliser un paramètre numérique pour les deux.launchd.conf
. Je pense que si le nombre est trop petit, cela peut rendre votre ordinateur inutilisable. Par exemple, j'ai utilisélimit maxfiles 1024 1024
et j'ai eu beaucoup de mal à le changer.Les éléments suivants devraient résoudre la plupart des solutions (et sont répertoriés dans l'ordre de leur hiérarchie):
Remarques:
la source
Il semble qu'il existe une méthode totalement différente pour modifier la limite de fichiers ouverts pour chaque version d'OS X!
Pour OS X Sierra (10.12.X), vous devez:
1. Dans
Library/LaunchDaemons
créer un fichier nommélimit.maxfiles.plist
et coller ce qui suit (sentez-vous libre de changer les deux nombres (qui sont les limites soft et hard, respectivement):2. Changez le propriétaire de votre nouveau fichier:
3. Chargez ces nouveaux paramètres:
4. Enfin, vérifiez que les limites sont correctes:
la source
Il semble que OS X Lion n'autorise pas la valeur "illimité":
Fournir des valeurs numériques pour la limite souple et la limite stricte fait le travail:
la source
-1
comme valeur entraîne l'affichage de12288
. Il est possible d'utiliser des valeurs numériques plus grandes, par exemplesudo launchctl limit maxfiles 15000 150000
. Je ne suis toutefois pas sûr que ces paramètres aient un effet.Sur Mavericks, c'est simple. En tant qu'utilisateur régulier:
ulimit -n 8192
Vous pouvez vérifier les paramètres mis à jour via
ulimit -a
Sur ma machine:
la source
echo limit maxfiles 10000 10000|sudo tee -a /etc/launchd.conf
puis redémarrer leur machineSous OS X 10.13.6, cela fonctionne pour moi:
la source
Certaines limites ne peuvent pas être modifiées par
ulimit
, car elles s'appliquent uniquement au shell actuel. Par conséquent,launchctl
commande doit être utilisée pour modifier les limites globalement, par exemple:Veuillez noter que l'application de ces limites
/etc/launchd.conf
(comme suggéré dans d'autres réponses) n'est plus prise en charge dans les dernières versions de macOS. Bien que vous puissiez toujours utiliserlaunchd.plist
(voir:)man launchd.plist
tels queplist
les fichiers de configuration par utilisateur ou à l’échelle du système, comme suggéré ici , ici et là - bas .Pour rendre ces limites persistantes, vous pouvez utiliser
/etc/sysctl.conf
file et ajouter par exemple:Pour que les modifications prennent effet, il faut redémarrer.
Pour voir les limites actuelles, exécutez:
launchctl limit
ousysctl -a | grep ^kern.max
.Voir aussi: Comment conserver les paramètres ulimit dans macOS?
la source