17 votos

¿Cómo aumentar correctamente un límite `ulimit -n`?

Estoy tratando de descargar el Demostración de X-Plane 10 a través de uTorrent, sin embargo me sale un error de "demasiados archivos abiertos" todo el tiempo. Puedo hacer la descarga alternativa (que tarda una eternidad y un día), pero me pregunto cómo puedo aumentar la configuración en Lion?

He encontrado información contradictoria al respecto, algunos dicen que ulimit -n y sysctl son las herramientas preferidas, mientras que otros informan de que launchctl es correcto.

El valor reportado para ulimit -n es 256, lo mismo para launchctl limit :

cpu         unlimited      unlimited      
filesize    unlimited      unlimited      
data        unlimited      unlimited      
stack       8388608        67104768       
core        0              unlimited      
rss         unlimited      unlimited      
memlock     unlimited      unlimited      
maxproc     709            1064           
maxfiles    256            unlimited

0 votos

13voto

errant.info Puntos 199

Lo siguiente debería resolver la mayoría de las soluciones (y se enumeran por orden de jerarquía):

echo 'kern.maxfiles=20480' | sudo tee -a /etc/sysctl.conf
echo -e 'limit maxfiles 8192 20480\nlimit maxproc 1000 2000' | sudo tee -a /etc/launchd.conf
echo 'ulimit -n 4096' | sudo tee -a /etc/profile

Notas:

  1. Deberá reiniciar para que estos cambios surtan efecto.
  2. Según tengo entendido, ya no se pueden establecer límites "ilimitados" en OS X
  3. launchctl maxfiles están limitados por sysctl maxfiles, y por lo tanto, no pueden excederlos
  4. sysctl parece heredar kern.maxfilesperproc de launchctl maxfiles
  5. ulimit parece heredar su valor de 'open files' de launchctl por defecto
  6. puede establecer un ulimit personalizado dentro de /etc/profile, o ~/.profile ; aunque esto no es necesario, he proporcionado un ejemplo
  7. Tenga cuidado al establecer cualquiera de estos valores a un número muy alto en comparación con su valor por defecto - las características existen estabilidad / seguridad. He tomado estos números de ejemplo que creo que son razonables, escritos en otros sitios web.
  8. Cuando los límites de launchctl son más bajos que los de sysctl, se ha informado de que los de sysctl pertinentes se incrementarán automáticamente para cumplir los requisitos.

9voto

matthew k Puntos 11

Básicamente ulimit controla los recursos disponibles para el shell y sus procesos, donde launchctl controla el máximo de recursos para el sistema y sus procesos.

Para el shell actual, el límite de archivos máximos abiertos puede ser cambiado por: ulimit -n 10240 .

Nota: Se puede utilizar un -S para un parámetro suave o -H para el límite duro.

Si el límite de la cáscara no puede ser cambiado, entonces usted necesita usar el launchctl primero, por ejemplo

sudo launchctl limit maxfiles 10240 unlimited

Para cambiar los límites del núcleo, ejecute: sudo sysctl -w kern.maxfiles=10240 .

Más información:

1voto

user13192 Puntos 130

Puedes aumentar el máximo de archivos abiertos ejecutando ulimit -n 1024 y lanzar uTorrent desde la línea de comandos. En mi caso, lanzaría Transmission usando el comando :

/Applications/Transmission.app/Contents/MacOS/Transmission

Debe lanzar la aplicación torrent desde el shell donde invocó a ulimit, sus cambios no tienen efecto en caso contrario, bueno aislar los cambios es la ventaja de ulimit.

0 votos

Eso no parece ayudar, incluso con el máximo ulimit -n permite establecer (10240) obtengo el mismo error :(

2 votos

Pero ¿cómo puedo modificar el ulimit valor para la máquina, para el próximo reinicio?

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X