¿Cómo aumentar correctamente los límites de 'ulimit -n'?

7

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

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

El valor notificado para ulimit -n es 256, igual 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      
    
pregunta Michael Stum 26.11.2011 - 08:23

3 respuestas

6

Lo siguiente debería resolver la mayoría de las soluciones (y se enumeran en el orden de su 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. AFAIK ya no puede establecer límites en 'ilimitado' en OS X
  3. launchctl maxfiles están limitados por sysctl maxfiles, y por lo tanto no puede excederlos
  4. sysctl parece heredar kern.maxfilesperproc de launchctl archivos max
  5. ulimit parece heredar su valor de 'archivos abiertos' de launchctl por defecto
  6. puede establecer un ulimit personalizado dentro de / etc / profile, o ~ / .profile; Si bien esto no es obligatorio, he proporcionado un ejemplo.
  7. Tenga cuidado al establecer cualquiera de estos valores en un número muy alto en comparación con su valor predeterminado: las características existen estabilidad / seguridad. Tomé estos números de ejemplo que creo que son razonables, escritos en otros sitios web.
  8. Cuando los límites de launchctl son inferiores a los de sysctl, ha habido informes de que los relevantes de sysctl serán aumentados automáticamente para cumplir los requisitos.
respondido por el errant.info 03.12.2012 - 13:14
1

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

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

Debe iniciar la aplicación de torrent desde el shell donde invocó ulimit; de lo contrario, sus cambios no tendrán ningún efecto; aislar los cambios es la ventaja de ulimit.

    
respondido por el Jeff Burdges 26.11.2011 - 09:23
1

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

Para el shell actual, el límite del máximo de archivos abiertos se puede cambiar en: ulimit -n 10240 .

Nota: Puedes usar el parámetro -S extra para un soft o -H para el límite duro.

Si no se puede cambiar el límite de shell, primero debes usar el comando launchctl , por ejemplo

sudo launchctl limit maxfiles 10240 unlimited

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

Lectura adicional:

respondido por el kenorb 12.01.2018 - 01:47

Lea otras preguntas en las etiquetas