Debian Lenny. Para cada usuario, incluido el root:
# cat /proc/sys/fs/file-max
262144
# sysctl fs.file-max
fs.file-max = 262144
# ulimit -Hn
1024
# ulimit -Sn
1024
El archivo /etc/security/limits.conf
no tiene líneas sin comentar.
¿De dónde saca ese 1024?
Respuesta1
Elfs.file-max
sistemamuestra cuántos identificadores de archivos se pueden asignartodo el sistema, mientras que ulimit
los límites de recursos son por proceso (o por UID). El primero se describe enDocumentation/sysctl/fs.txt:90
:
archivo-max y archivo-nr: El valor en file-max denota el número máximo de archivos maneja que el kernel de Linux asignará. cuando obtienes muchos de mensajes de error sobre quedarse sin identificadores de archivos, es posible que desea aumentar este límite.
El límite de 1024 archivos no está establecido explícitamente en ninguna parte; está codificado en el kernel como valor predeterminado para pid 1, eninclude/asm-generic/resource.h:81
:
/* * valores predeterminados de rlimit de tiempo de arranque para la tarea de inicio: */ #definir INIT_RLIMITS \ {\ ... [RLIMIT_NOFILE] = { INR_OPEN_CUR, INR_OPEN_MAX }, \ ... }
qué referencias INR_OPEN_CUR
y INR_OPEN_MAX
deinclude/linux/fs.h:26
:
#define INR_OPEN_CUR 1024 /* Configuración inicial para nfile rlimits */ #define INR_OPEN_MAX 4096 /* Límite estricto para rlimits de nfile */
Otros procesos simplemente heredan el límite init
(o lo que sea pid 1).
¿Por qué /proc/1/limits
en Debian informa 1024 como ambos blandos?y duro¿Límite de archivos? No lo sé: ni las fuentes de sysvinit ni los parches del kernel de Debian lo cambian. Podrían ser los scripts initramfs, tal vez. (Ejecuto Arch, que tiene el valor predeterminado 1024/4096).
Respuesta2
Para la pregunta que planteó @grawity, esta confirmación del kernel puede explicar:
confirmar 0ac1ee0bfec2a4ad118f907ce586d0dfd8db7641 Autor: Tim Gardner Fecha: martes 24 de mayo 17:13:05 2011 -0700 ulimit: aumenta el ulimit predeterminado en el número de archivos a 4096
Al menos en RHEL5.4 es 1024/1024 y en RHEL6.2 es 1024/4096.