El comando lsof
20 Septiembre, 2006
En los sistemas UNIX todo son ficheros. Las unidades de disco son ficheros, los sockets son ficheros, incluso la tarjeta de sonido es un fichero. Por lo tanto, nos sería útil una herramienta que nos mostrara cuantos ficheros está utilizando cada proceso y eso, precisamente, es lo que hace lsof.
Si lo ejecutamos sin ningún parámetro veremos una lista completa de los ficheros abiertos en nuestro sistema pero así poca utilidad le daremos. Podemos ver una lista más ordenada usando este comando:
lsof | awk ‘{ print $1 }’ | sort | uniq -c | sort -nr
Al hacerlo aparecerá una lista similar a esta:
4245 apache2
176 sshd
157 mysqld
85 bash
76 pure-ftpd
51 hulamodwe
48 getty
…
Así podemos ver cuantos ficheros tiene abiertos cada proceso y si el servidor está muy cargado nos puede dar una idea de quien es el culpable y además ver si se está alcanzando el límite de ficheros abiertos simultáneamente. Esto lo podemos ver con el comando:
sysctl fs.file-max
Y modificarlo si es necesario con este mismo comando:
sysctl fs.file-max=256000
10 Noviembre, 2007 a las 12:52 am
[...] conocer en cada momento el número de ficheros que tiene abierto un proceso usando el comando lsof Aquí nos emplican con todo detalle el tema, a la vez que nos proporcionan una línea de comando para [...]
6 Mayo, 2008 a las 8:02 pm
una forma de ver el numero de conexiones activas con cierta aplicación es de la siguiente manera
lsof -p [PID del proceso] | wc -l