Me encuentro con un problema de repente; Todas mis aplicaciones y el servidor funcionaban bien y, de repente, veo que se dispara la cantidad de archivos abiertos.
Lo estoy comprobando con este comando:
cat /proc/sys/fs/file-nr
Cuando 44544 0 128000
verifico esto, se muestra , entonces 44544 es el número de archivos abiertos.
Pero cuando lsof | wc -l
verifico con este comando, muestra 28384.
¿Y cuál es la correcta?
Mi límite máximo de archivos abiertos es 65535
ulimit -a
open files (-n) 65535
Quiero conocer los 5 procesos principales que utilizan más archivos abiertos. Puedo obtener esto, lsof
pero el conteo que se muestra aquí es muy diferente del otro comando que mencioné anteriormente.
¿Puedo obtener los detalles de los procesos contados por este comando cat /proc/sys/fs/file-nr
?
De acuerdo con el enlace mencionado a continuación, dice que no podemos, Cómo mostrar descriptores de archivos abiertos pero sin usar el comando lsof
¿Hay alguna solución para mí? Necesito encontrar qué proceso comenzó a usar más archivos abiertos de repente.
ACTUALIZACIÓN Perdón chicos por el problema. Encontré el error que estaba cometiendo, NO estaba comprobando lsof | wc -l desde la raíz. Esa es la razón por la que estaba viendo una gran diferencia.
todavía hay una diferencia entre la salida del archivo -nr y lsof | wc -l (desde la raíz). lsof count es más que file -nr count. La razón de esto es que file -nr ignora algunos de los directorios (que son considerados como archivos por lsof). Encontré esta razón por una pequeña investigación en Google. de todos modos! ¡Gracias chicos por toda la ayuda!
lsof | wc -l
Realmente muestra un número negativo?