Je crée un testeur de charge qui utilise Libev pour créer beaucoup de connexions TCP ouvertes à une application sur laquelle je travaille. Actuellement, il bombe à 256 connexions, en raison de la limite NOFILES:
ulimit -n
256
Je peux augmenter cela à 1024 en faisant ci-dessous:
ulimit -n 1024
Mais je ne peux pas l'augmenter plus loin. Idéalement, je veux la définir à 1048576. Il donne l'erreur suivante:
ulimit: open files: cannot modify limit: Invalid argument
Comment puis-je augmenter l'ulimit plus loin sur OSX?
(Réponse mise à jour à utiliser -s comme plusieurs commentateurs suggérées)
$ sysctl kern.maxfiles
kern.maxfiles: 12288
$ sysctl kern.maxfilesperproc
kern.maxfilesperproc: 10240
$ Sudo sysctl -w kern.maxfiles=1048600
kern.maxfiles: 12288 -> 1048600
$ Sudo sysctl -w kern.maxfilesperproc=1048576
kern.maxfilesperproc: 10240 -> 1048576
$ ulimit -S -n
256
$ ulimit -S -n 1048576
$ ulimit -S -n
1048576
Une dernière chose: la limite des ports est de 65535. Vous ne pouvez donc pas en avoir autant que vous le souhaitez.
Essayez d'exécuter en tant que root (par exemple faire un "sudo -s" avant d'exécuter la commande Ulimit et votre programme).
Notez que je ne suis pas sûr que 1-million-plus-plus TCP sockets à la fois réalisable est réalisable (bien que je suis intéressant dans l'entendre sur ce qui se passe lorsque vous l'essayez; ^)))
Vérifiez également Ceci .