Establecer ulimit-n para archivos abiertos
El límite por defecto de 1024 para archivos abiertos a veces puede ser un problema en Linux. Podemos aumentarlo así:
ulimit -n 1024 ulimit -n 65535 ulimit -n 65535
Pero este cambio se pierde al reiniciar. Para hacerlo permanente, al menos en Ubuntu, según medium, se soluciona así (en el ejemplo cambiaremos 1024 a 65535):
# Editamos: /etc/pam.d/common-session # Y agregamos: session required pam_limits.so # Editamos: /etc/security/limits.conf # Y agregamos: * soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535 root soft nproc 65535 root hard nproc 65535 root soft nofile 65535 root hard nofile 65535 # Editamos: /etc/sysctl.conf # Y agregamos: fs.file-max = 65535 net.core.somaxconn = 65535Pero esto no es suficiente para que funcione en LTS 20.04 (Bug 1627769).
Ahora ya no es necesario agregar la línea a "common-session" y en su reemplazo editamos los siguientes archivos (el resto queda igual):
# Editamos los archivos: /etc/systemd/system.conf /etc/systemd/user.conf # Y agregamos en ambos la línea: DefaultLimitNOFILE=65535
También podemos hacer toda la operación directamente en consola con un bash script (lo guardamos como ulimit.sh y ejecutamos):
sudo chmod +x ulimit.sh && sudo ./ulimit.shContenido:
#!/bin/bash # change value for your limit open files: openfiles="65535" # backup .conf files: cp -f /etc/security/limits.conf{,.bak} cp -f /etc/systemd/system.conf{,.bak} cp -f /etc/systemd/user.conf{,.bak} cp -f /etc/sysctl.conf{,.bak} # adding parameters sh -c 'echo "* soft nproc '$openfiles'" >> /etc/security/limits.conf' sh -c 'echo "* hard nproc '$openfiles'" >> /etc/security/limits.conf' sh -c 'echo "* soft nofile '$openfiles'" >> /etc/security/limits.conf' sh -c 'echo "* hard nofile '$openfiles'" >> /etc/security/limits.conf' sh -c 'echo "root soft nproc '$openfiles'" >> /etc/security/limits.conf' sh -c 'echo "root hard nproc '$openfiles'" >> /etc/security/limits.conf' sh -c 'echo "root soft nofile '$openfiles'" >> /etc/security/limits.conf' sh -c 'echo "root hard nofile '$openfiles'" >> /etc/security/limits.conf' sh -c 'echo "DefaultLimitNOFILE='$openfiles'" >> /etc/systemd/system.conf' sh -c 'echo "DefaultLimitNOFILE='$openfiles'" >> /etc/systemd/user.conf' sh -c 'echo "fs.file-max = '$openfiles'" >> /etc/sysctl.conf' sh -c 'echo "net.core.somaxconn = '$openfiles'" >> /etc/sysctl.conf'Reiniciamos y finalmente ejecutamos el comando ulimit y vemos los resultados:
ulimit -Ha | grep open open files (-n) 65535 ulimit -Sa | grep open open files (-n) 65535 ulimit -n 65535Imagen cortesía de: bytelearning
Post a Comment