Estoy tratando de hacer algo que requiera una gran cantidad de descriptores de archivos
sudo ulimit -n 12288
es tan alto como Snow Leopard quiere llegar; más allá de esto resulta en
/ usr / bin / ulimit: línea 4: ulimit: archivos abiertos: no se puede modificar el límite: argumento no válido.
Quiero aumentar el número mucho más alto, digamos 100000. ¿Es posible?
mac
osx-snow-leopard
ulimit
file-descriptors
Chris Poole
fuente
fuente
echo limit maxfiles 10000 10000|sudo tee -a /etc/launchd.conf
y reiniciar funciona para mí en Mavericks.Respuestas:
El uso del
ulimit
comando solo cambia los límites de recursos para el shell actual y sus hijos ysudo ulimit
crea un shell raíz, ajusta sus límites y luego sale (por lo que, hasta donde puedo ver, no tiene ningún efecto real).Para superar los 12288, debe ajustar el núcleo
kern.maxfiles
y loskern.maxfilesperproc
parámetros, y también (al menos de acuerdo con esta entrada del blog , que es un resumen de esta discusión ) un límite de lanzamiento. Puede usarlaunchctl limit
para ajustar todo esto a la vez:Para hacer esto permanente (es decir, no restablecer cuando reinicia), cree que
/etc/launchd.conf
contiene:Luego puede usar
ulimit
(pero sin elsudo
) para ajustar su límite de proceso.Si esto no lo hace, es posible que se encuentre con límites de tamaño en el núcleo. Si su modelo lo admite , puede ser útil iniciar el núcleo en modo de 64 bits .
fuente
sudo launchctl limit maxfiles 1000000 unlimited
Ni el límite rígido ni el límite flexible para "maxfiles" pueden ser ilimitados. Utilice un parámetro numérico para ambos.launchd.conf
. Creo que si el número es demasiado pequeño, puede inutilizar su computadora. Por ejemplo, lo usélimit maxfiles 1024 1024
y me costó mucho volver a cambiarlo.Lo siguiente debería resolver la mayoría de las soluciones (y se enumeran en orden de jerarquía):
Notas:
fuente
¡Parece que hay un método completamente diferente para cambiar el límite de archivos abiertos para cada versión de OS X!
Para OS X Sierra (10.12.X) necesita:
1. En
Library/LaunchDaemons
crear un archivo llamadolimit.maxfiles.plist
y pegar lo siguiente (no dude en cambiar los dos números (que son los límites blandos y duros, respectivamente):2. Cambie el propietario de su nuevo archivo:
3. Cargue estas nuevas configuraciones:
4. Finalmente, verifique que los límites sean correctos:
fuente
Parece que OS X Lion no permitirá un valor "ilimitado":
Proporcionar valores numéricos tanto para el límite blando como para el duro hace el trabajo:
fuente
-1
como valor da como resultado12288
. Es posible usar valores numéricos más grandes, por ejemplosudo launchctl limit maxfiles 15000 150000
. Sin embargo, no estoy seguro de que esta configuración tenga efecto.En Mavericks es simple. Como usuario habitual:
ulimit -n 8192
Puede verificar la configuración actualizada a través de
ulimit -a
En mi máquina
fuente
echo limit maxfiles 10000 10000|sudo tee -a /etc/launchd.conf
y luego reiniciar su máquinaEn OS X 10.13.6 esto funciona para mí:
fuente
Algunos límites no se pueden cambiar
ulimit
, ya que solo se aplican al shell actual, por lo tanto, ellaunchctl
comando se debe usar para cambiar los límites globalmente, por ejemploTenga en cuenta que la aplicación de estos límites en
/etc/launchd.conf
(como se sugiere en otras respuestas) ya no es compatible con las versiones recientes de macOS. Aunque todavía puede usarlaunchd.plist
(ver :) como archivos de configuraciónman launchd.plist
por usuario o en todo el sistemaplist
como se sugiere aquí , allá y allá .Para que estos límites sean persistentes, puede usar el
/etc/sysctl.conf
archivo y agregar, por ejemplo:Para que los cambios surtan efecto, es necesario reiniciar.
Para ver los límites actuales, ejecute:
launchctl limit
osysctl -a | grep ^kern.max
.Consulte también: ¿Cómo persistir la configuración de ulimit en macOS?
fuente