macos - ¿Cómo aumentar los límites en sockets en osx para la prueba de carga?
freebsd libev (3)
(respuesta actualizada para usar -S como sugirieron varios comentaristas)
$ 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
Estoy creando un probador de carga que usa libev para crear muchas conexiones tcp abiertas a una aplicación en la que estoy trabajando. Actualmente bombardea en 256 conexiones, debido al límite de nofiles:
ulimit -n
256
Puedo aumentar esto a 1024 haciendo lo siguiente:
ulimit -n 1024
Pero no puedo aumentarlo más. Idealmente quiero configurarlo en 1048576. Da el siguiente error:
ulimit: open files: cannot modify limit: Invalid argument
¿Cómo puedo aumentar el ulimit aún más en osx?
Intenta ejecutar como root (por ejemplo, haz un "sudo -s" antes de ejecutar el comando ulimit y tu programa).
Tenga en cuenta que no estoy seguro de que más de un millón de sockets TCP a la vez sean realistas (aunque me interesa escuchar lo que sucede cuando lo prueba; ^))
Además, mira this .
Una cosa más: el límite en los puertos es 65535. Por lo tanto, es posible que no obtenga tantos como desee.