GNU/Linux >> Tutoriales Linux >  >> Linux

Las 25 mejores herramientas de depuración y supervisión del rendimiento de Linux

He compilado 25 herramientas de monitoreo y depuración de rendimiento que serán útiles cuando trabaje en un entorno Linux. Esta lista no es exhaustiva ni autorizada de ninguna manera.

Sin embargo, esta lista tiene suficientes herramientas para que juegue y elija la que sea adecuada para su escenario específico de depuración y monitoreo.

1. RAE

Con la utilidad sar puede hacer dos cosas:1) Supervisar el rendimiento del sistema en tiempo real (CPU, memoria, E/S, etc.) 2) Recopilar datos de rendimiento en segundo plano de forma continua y analizar los datos históricos para identificar cuellos de botella.

Sar es parte del paquete sysstat. Las siguientes son algunas de las cosas que puede hacer con la utilidad sar.

  • Uso colectivo de CPU
  • Estadísticas de CPU individuales
  • Memoria utilizada y disponible
  • Intercambio de espacio utilizado y disponible
  • Actividades generales de E/S del sistema
  • Actividades de E/S de dispositivos individuales
  • Estadísticas de cambio de contexto
  • Ejecutar cola y cargar datos promedio
  • Estadísticas de la red
  • Informar datos sar desde un momento específico
  • y mucho más..

El siguiente comando sar mostrará las estadísticas de la CPU del sistema 3 veces (con un intervalo de 1 segundo).

El siguiente comando “sar -b” informa estadísticas de E/S. “1 3” indica que sar -b se ejecutará cada 1 segundo por un total de 3 veces.

$ sar -b 1 3
Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)

01:56:28 PM       tps      rtps      wtps   bread/s   bwrtn/s
01:56:29 PM    346.00    264.00     82.00   2208.00    768.00
01:56:30 PM    100.00     36.00     64.00    304.00    816.00
01:56:31 PM    282.83     32.32    250.51    258.59   2537.37
Average:       242.81    111.04    131.77    925.75   1369.90

Más ejemplos de SAR:Cómo instalar/configurar Sar (sysstat) y 10 ejemplos útiles de comandos de Sar

2. volcado tcp

tcpdump es un analizador de paquetes de red. Con tcpdump puede capturar los paquetes y analizarlos en busca de cuellos de botella en el rendimiento.

El siguiente ejemplo del comando tcpdump muestra los paquetes capturados en ASCII.

$ tcpdump -A -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:34:50.913995 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652
E.....@.@..]..i...9...*.V...]...P....h....E...>{..U=...g.
......G..7\+KA....A...L.
14:34:51.423640 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652
E.....@.@..\..i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&....^#Ba...
E..(R.@.|.....9...i.*...]...V..*P..OWp........

Con tcpdump puede capturar paquetes en función de varias condiciones personalizadas. Por ejemplo, capturar paquetes que fluyen a través de un puerto en particular, capturar comunicación tcp entre dos hosts específicos, capturar paquetes que pertenecen a un tipo de protocolo específico, etc.

Más ejemplos de tcpdump:15 ejemplos de comandos TCPDUMP

3. Nagios

Nagios es una solución de monitoreo de código abierto que puede monitorear casi cualquier cosa en su infraestructura de TI. Por ejemplo, cuando un servidor se cae, puede enviar una notificación a su equipo de administración de sistemas, cuando una base de datos se cae, puede avisar a su equipo de DBA, cuando un servidor web se cae, puede notificar al equipo apropiado.

También puede establecer un nivel de umbral crítico y de advertencia para varios servicios para ayudarlo a abordar el problema de manera proactiva. Por ejemplo, puede notificar al equipo de administración del sistema cuando una partición de disco se llena en un 80 %, lo que dará tiempo suficiente para que el equipo de administración del sistema trabaje en agregar más espacio antes de que el problema se vuelva crítico.

Nagios también tiene una muy buena interfaz de usuario desde donde puede monitorear la salud de su infraestructura de TI general.

Las siguientes son algunas de las cosas que puede monitorear usando Nagios:

  • Cualquier hardware (servidores, conmutadores, enrutadores, etc.)
  • Servidores Linux y servidores Windows
  • Bases de datos (Oracle, MySQL, PostgreSQL, etc.)
  • Varios servicios que se ejecutan en su sistema operativo (sendmail, nis, nfs, ldap, etc.)
  • Servidores web
  • Tu aplicación personalizada
  • etc.

Más ejemplos de Nagios:cómo instalar y configurar Nagios, monitorear una máquina Windows remota y monitorear un servidor Linux remoto.

4. iostato

iostat informa estadísticas de CPU, E/S de disco y NFS. Los siguientes son algunos ejemplos de comandos de iostat.

Iostat sin ningún argumento muestra información sobre el uso de la CPU y estadísticas de E/S sobre todas las particiones del sistema, como se muestra a continuación.

$ iostat
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.72      1096.66      1598.70 2719068704 3963827344
sda1            178.20       773.45      1329.09 1917686794 3295354888
sda2             16.51       323.19       269.61  801326686  668472456
sdb             371.31       945.97      1073.33 2345452365 2661206408
sdb1            371.31       945.95      1073.33 2345396901 2661206408
sdc             408.03       207.05       972.42  513364213 2411023092
sdc1            408.03       207.03       972.42  513308749 2411023092

Por defecto, iostat muestra datos de E/S para todos los discos disponibles en el sistema. Para ver las estadísticas de un dispositivo específico (por ejemplo, /dev/sda), use la opción -p como se muestra a continuación.

$ iostat -p sda
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.69      1096.51      1598.48 2719069928 3963829584
sda2            336.38        27.17        54.00   67365064  133905080
sda1            821.89         0.69       243.53    1720833  603892838

5. Mpstat

mpstat informa las estadísticas de los procesadores. Los siguientes son algunos ejemplos de comandos mpstat.

La opción -A muestra toda la información que puede mostrar el comando mpstat como se muestra a continuación. Esto es realmente equivalente al comando "mpstat -I ALL -u -P ALL".

$ mpstat -A
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)

10:26:34 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:26:34 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:26:34 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:26:34 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

10:26:34 PM  CPU    intr/s
10:26:34 PM  all     36.51
10:26:34 PM    0      0.00
10:26:34 PM    1      0.00
10:26:34 PM    2      0.04
10:26:34 PM    3      0.00

10:26:34 PM  CPU     0/s     1/s     8/s     9/s    12/s    14/s    15/s    16/s    19/s    20/s    21/s    33/s   NMI/s   LOC/s   SPU/s   PMI/s   PND/s   RES/s   CAL/s   TLB/s   TRM/s   THR/s   MCE/s   MCP/s   ERR/s   MIS/s
10:26:34 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    7.47    0.00    0.00    0.00    0.00    0.02    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    4.90    0.00    0.00    0.00    0.00    0.03    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.04    0.00    0.00    0.00    0.00    0.00    3.32    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.

Opción mpstat -P ALL, muestra todas las CPU (o núcleos) individuales junto con sus estadísticas, como se muestra a continuación.

$ mpstat -P ALL
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)

10:28:04 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:28:04 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:28:04 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:28:04 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

6. Vmstat

vmstat informa estadísticas de memoria virtual. Los siguientes son algunos ejemplos de comandos de vmstat.

vmstat de forma predeterminada mostrará el uso de la memoria (incluido el intercambio) como se muestra a continuación.

$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0 305416 260688  29160 2356920    2    2     4     1    0    0  6  1 92  2  0

To execute vmstat every 2 seconds for 10 times, do the following. After executing 10 times, it will stop automatically.
$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 537144 182736 6789320    0    0     0     0    1    1  0  0 100  0  0
 0  0      0 537004 182736 6789320    0    0     0     0   50   32  0  0 100  0  0
..

iostat y vmstat son parte de la utilidad sar. Debe instalar el paquete sysstat para que iostat y vmstat funcionen.

Más ejemplos:24 ejemplos de comandos iostat, vmstat y mpstat

7. Comando PS

El proceso es una instancia en ejecución de un programa. Linux es un sistema operativo multitarea, lo que significa que más de un proceso puede estar activo a la vez. Utilice el comando ps para averiguar qué procesos se están ejecutando en su sistema.

El comando ps también le brinda mucha información adicional sobre el proceso en ejecución que lo ayudará a identificar cualquier cuello de botella en el rendimiento de su sistema.

Los siguientes son algunos ejemplos de comandos ps.

Use la opción -u para mostrar el proceso que pertenece a un nombre de usuario específico. Cuando tenga varios nombres de usuario, sepárelos con una coma. El siguiente ejemplo muestra todos los procesos que son propiedad del usuario wwwrun o postfix.

$ ps -f -u wwwrun,postfix
UID        PID  PPID  C STIME TTY          TIME CMD
postfix   7457  7435  0 Mar09 ?        00:00:00 qmgr -l -t fifo -u
wwwrun    7495  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7496  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7497  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7498  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7499  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   10078  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   10082  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
postfix  15677  7435  0 22:23 ?        00:00:00 pickup -l -t fifo -u

El siguiente ejemplo muestra el Id. del proceso y los comandos en una jerarquía. –forest es un argumento para el comando ps que muestra el arte ASCII del árbol de procesos. A partir de este árbol, podemos identificar cuál es el proceso padre y el hijo lo procesa bifurcado de manera recursiva.

$ ps -e -o pid,args --forest
  468  \_ sshd: root@pts/7
  514  |   \_ -bash
17484  \_ sshd: root@pts/11
17513  |   \_ -bash
24004  |       \_ vi ./790310__11117/journal
15513  \_ sshd: root@pts/1
15522  |   \_ -bash
 4280  \_ sshd: root@pts/5
 4302  |   \_ -bash

Más ejemplos de ps:7 ejemplos prácticos de comandos de PS para la supervisión de procesos

8. Gratis

El comando gratuito muestra información sobre la memoria física (RAM) y de intercambio de su sistema.

En el siguiente ejemplo, la memoria física total de este sistema es de 1 GB. Los valores que se muestran a continuación están en KB.

# free
       total   used    free   shared  buffers  cached
Mem: 1034624   1006696 27928  0       174136   615892
-/+ buffers/cache:     216668      817956
Swap:    2031608       0    2031608

El siguiente ejemplo mostrará la memoria total en su sistema, incluida la RAM y el intercambio.

En el siguiente comando:

  • opción m muestra los valores en MB
  • opción t muestra la línea "Total", que es la suma de los valores físicos y de memoria de intercambio
  • opción o es ocultar la línea de búfer/caché del ejemplo anterior.
# free -mto
                  total       used      free     shared    buffers     cached
Mem:          1010        983         27              0         170           601
Swap:          1983            0    1983
Total:          2994        983     2011

9. ARRIBA

El comando superior muestra todo el proceso en ejecución en el sistema ordenado por ciertas columnas. Esto muestra la información en tiempo real.

Puede matar un proceso sin salir de la parte superior. Una vez que haya localizado un proceso que debe eliminarse, presione "k", que le pedirá la identificación del proceso y la señal para enviar. Si tiene el privilegio de eliminar ese PID en particular, se eliminará con éxito.

PID to kill: 1309
Kill PID 1309 with signal [15]:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent
 5136 root    16   0 38040  14m 9836 S    0  0.2   0:00.39 nautilus

Use top -u para mostrar los procesos de un usuario específico solo en la salida del comando superior.

$ top -u geek

Mientras se ejecuta el comando superior de Unix, presione u, que le pedirá el nombre de usuario como se muestra a continuación.

Which user (blank for all): geek
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent

Más ejemplos principales:15 ejemplos prácticos de comandos principales de Linux

10. Pmap

El comando pmap muestra el mapa de memoria de un proceso determinado. Debe pasar el pid como argumento al comando pmap.

El siguiente ejemplo muestra el mapa de memoria del shell bash actual. En este ejemplo, 5732 es el PID del shell bash.

$ pmap 5732
5732:   -bash
00393000    104K r-x--  /lib/ld-2.5.so
003b1000   1272K r-x--  /lib/libc-2.5.so
00520000      8K r-x--  /lib/libdl-2.5.so
0053f000     12K r-x--  /lib/libtermcap.so.2.0.8
0084d000     76K r-x--  /lib/libnsl-2.5.so
00c57000     32K r-x--  /lib/libnss_nis-2.5.so
00c8d000     36K r-x--  /lib/libnss_files-2.5.so
b7d6c000   2048K r----  /usr/lib/locale/locale-archive
bfd10000     84K rw---    [ stack ]
 total     4796K

pmap -x brinda información adicional sobre los mapas de memoria.

$  pmap -x 5732
5732:   -bash
Address   Kbytes     RSS    Anon  Locked Mode   Mapping
00393000     104       -       -       - r-x--  ld-2.5.so
003b1000    1272       -       -       - r-x--  libc-2.5.so
00520000       8       -       -       - r-x--  libdl-2.5.so
0053f000      12       -       -       - r-x--  libtermcap.so.2.0.8
0084d000      76       -       -       - r-x--  libnsl-2.5.so
00c57000      32       -       -       - r-x--  libnss_nis-2.5.so
00c8d000      36       -       -       - r-x--  libnss_files-2.5.so
b7d6c000    2048       -       -       - r----  locale-archive
bfd10000      84       -       -       - rw---    [ stack ]
-------- ------- ------- ------- -------
total kB    4796       -       -       -

Para mostrar la información del dispositivo de los mapas de proceso, use 'pamp -d pid'.

11. Netstat

El comando Netstat muestra diversa información relacionada con la red, como conexiones de red, tablas de enrutamiento, estadísticas de interfaz, conexiones enmascaradas, membresías de multidifusión, etc.,

Los siguientes son algunos ejemplos de comandos de netstat.

Enumere todos los puertos (tanto de escucha como de no escucha) usando netstat -a como se muestra a continuación.

# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:30037         *:*                     LISTEN
udp        0      0 *:bootpc                *:*                                

Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     6135     /tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     LISTENING     5140     /var/run/acpid.socket

Utilice el siguiente comando netstat para averiguar en qué puerto se está ejecutando un programa.

# netstat -ap | grep ssh
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        1      0 dev-db:ssh           101.174.100.22:39213        CLOSE_WAIT  -
tcp        1      0 dev-db:ssh           101.174.100.22:57643        CLOSE_WAIT  -

Use el siguiente comando netstat para averiguar qué proceso está usando un puerto en particular.

# netstat -an | grep ':80'

Más ejemplos de netstat:10 ejemplos de comandos de Netstat

12. Tráfico IP

IPTraf es un software de monitoreo de red IP. Las siguientes son algunas de las características principales de IPTraf:

  • Es una utilidad basada en consola (basada en texto).
  • Esto muestra el tráfico IP que cruza su red. Esto muestra el indicador TCP, conteos de paquetes y bytes, ICMP, tipos de paquetes OSPF, etc.
  • Muestra estadísticas de interfaz ampliadas (incluidos IP, TCP, UDP, ICMP, tamaño y recuento de paquetes, errores de suma de comprobación, etc.)
  • El módulo LAN descubre hosts automáticamente y muestra sus actividades
  • Filtros de visualización de protocolo para ver el tráfico de protocolo selectivo
  • Características avanzadas de registro
  • Además de la interfaz ethernet, también es compatible con FDDI, ISDN, SLIP, PPP y loopback
  • También puede ejecutar la utilidad en modo de pantalla completa. Esto también tiene un menú basado en texto.

Más información: Página de inicio de IPTraf. Captura de pantalla de IPTraf.

13. Carrera

Strace se utiliza para depurar y solucionar problemas de ejecución de un ejecutable en un entorno Linux. Muestra las llamadas al sistema utilizadas por el proceso y las señales recibidas por el proceso.

Strace monitorea las llamadas al sistema y las señales de un programa específico. Es útil cuando no tiene el código fuente y le gustaría depurar la ejecución de un programa. strace le proporciona la secuencia de ejecución de un binario de principio a fin.

Rastrear llamadas específicas del sistema en un ejecutable usando la opción -e

Por defecto, strace muestra todas las llamadas al sistema para el ejecutable dado. El siguiente ejemplo muestra la salida de strace para el comando ls de Linux.

$ strace ls
execve("/bin/ls", ["ls"], [/* 21 vars */]) = 0
brk(0)                                  = 0x8c31000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78c7000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=65354, ...}) = 0

Para mostrar solo una llamada de sistema específica, use la opción strace -e como se muestra a continuación.

$ strace -e open ls
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/libselinux.so.1", O_RDONLY)  = 3
open("/lib/librt.so.1", O_RDONLY)       = 3
open("/lib/libacl.so.1", O_RDONLY)      = 3
open("/lib/libc.so.6", O_RDONLY)        = 3
open("/lib/libdl.so.2", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libattr.so.1", O_RDONLY)     = 3
open("/proc/filesystems", O_RDONLY|O_LARGEFILE) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3

Más ejemplos de strace:7 ejemplos de strace para depurar la ejecución de un programa en Linux

14. Lsof

Lsof significa ls archivos abiertos, que enumerará todos los archivos abiertos en el sistema. Los archivos abiertos incluyen conexión de red, dispositivos y directorios. La salida del comando lsof tendrá las siguientes columnas:

  • Nombre del proceso COMMAND.
  • ID del proceso PID
  • USUARIO Nombre de usuario
  • Descriptor de archivo FD
  • tipo de nodo TYPE del archivo
  • Número de dispositivo DEVICE
  • Tamaño del archivo SIZE
  • NODE número de nodo
  • NOMBRE ruta completa del nombre del archivo.

Para ver todos los archivos abiertos del sistema, ejecute el comando lsof sin ningún parámetro como se muestra a continuación.

# lsof | more
COMMAND     PID       USER   FD      TYPE     DEVICE      SIZE       NODE NAME
init          1       root  cwd       DIR        8,1      4096          2 /
init          1       root  rtd       DIR        8,1      4096          2 /
init          1       root  txt       REG        8,1     32684     983101 /sbin/init
init          1       root  mem       REG        8,1    106397     166798 /lib/ld-2.3.4.so
init          1       root  mem       REG        8,1   1454802     166799 /lib/tls/libc-2.3.4.so
init          1       root  mem       REG        8,1     53736     163964 /lib/libsepol.so.1
init          1       root  mem       REG        8,1     56328     166811 /lib/libselinux.so.1
init          1       root   10u     FIFO       0,13                  972 /dev/initctl
migration     2       root  cwd       DIR        8,1      4096          2 /
skipped..

Para ver los archivos abiertos por un usuario específico, use la opción lsof -u para mostrar todos los archivos abiertos por un usuario específico.

# lsof -u ramesh
vi      7190 ramesh  txt    REG        8,1   474608   475196 /bin/vi
sshd    7163 ramesh    3u  IPv6   15088263               TCP dev-db:ssh->abc-12-12-12-12.

Para enumerar los usuarios de un archivo en particular, use lsof como se muestra a continuación. En este ejemplo, muestra todos los usuarios que actualmente usan vi.

# lsof /bin/vi
COMMAND  PID  USER    FD   TYPE DEVICE   SIZE   NODE NAME
vi      7258  root   txt    REG    8,1 474608 475196 /bin/vi
vi      7300  ramesh txt    REG    8,1 474608 475196 /bin/vi

15. Ntop

Ntop es como top, pero para el tráfico de red. ntop es un monitor de tráfico de red que muestra el uso de la red.

También puede acceder a ntop desde el navegador para obtener información sobre el tráfico y el estado de la red.

Las siguientes son algunas de las características clave de ntop:

  • Mostrar el tráfico de la red desglosado por protocolos
  • Ordenar la salida del tráfico de red según varios criterios
  • Mostrar estadísticas de tráfico de la red
  • Capacidad de almacenar las estadísticas de tráfico de red usando RRD
  • Identifique la identidad de los usuarios y host os
  • Capacidad para analizar y mostrar el tráfico de TI
  • Capacidad de trabajar como colector NetFlow/sFlow para enrutadores y conmutadores
  • Muestra estadísticas de tráfico de red similares a RMON
  • Funciona en Linux, MacOS y Windows

Más información:página de inicio de Ntop

16. GkrellM

GKrellM significa GNU Krell Monitors o GTK Krell Meters. Es un programa de monitoreo basado en el kit de herramientas GTK+, que monitorea varios recursos del sistema. La interfaz de usuario se puede apostar. es decir, puede agregar tantos objetos de monitoreo como desee uno encima del otro. Al igual que cualquier otra herramienta de monitoreo basada en la interfaz de usuario de escritorio, puede monitorear la CPU, la memoria, el sistema de archivos, el uso de la red, etc. Pero al usar complementos, puede monitorear aplicaciones externas.

Más información:página de inicio de GkrellM

17. w y tiempo de actividad

Mientras se supervisa el rendimiento del sistema, el comando w ayudará a saber quién está conectado al sistema.

$ w
09:35:06 up 21 days, 23:28,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM          LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     :0            24Oct11  21days 1:05   1:05 /usr/bin/Xorg :0 -nr -verbose
ramesh   pts/0    192.168.1.10  Mon14    0.00s  15.55s 0.26s sshd: localuser [priv]
john     pts/0    192.168.1.11  Mon07    0.00s  19.05s 0.20s sshd: localuser [priv]
jason    pts/0    192.168.1.12  Mon07    0.00s  21.15s 0.16s sshd: localuser [priv]

Para todos y cada uno de los usuarios que han iniciado sesión, muestra la siguiente información:

  • Nombre de usuario
  • información de tty
  • Dirección IP del host remoto
  • Hora de inicio de sesión del usuario
  • Cuánto tiempo ha estado inactivo el usuario
  • JCPU y PCUP
  • El comando del proceso actual que el usuario está ejecutando

La línea 1 de la salida del comando w es similar a la salida del comando uptime. Muestra lo siguiente:

  • Hora actual
  • Cuánto tiempo ha estado funcionando el sistema
  • Número total de usuarios que actualmente están conectados al sistema
  • Promedio de carga de los últimos 1, 5 y 15 minutos

Si solo desea la información de tiempo de actividad, use el comando de tiempo de actividad.

$ uptime
 09:35:02 up 106 days, 28 min,  2 users,  load average: 0.08, 0.11, 0.05

Tenga en cuenta que tanto el comando w como el uptime obtienen la información del archivo de datos /var/run/utmp.

18. /proc

/proc es un sistema de archivos virtual. Por ejemplo, si hace ls -l /proc/stat, notará que tiene un tamaño de 0 bytes, pero si hace "cat /proc/stat", verá algo de contenido dentro del archivo.

Haz un ls -l /proc, y verás muchos directorios con solo números. Estos números representan los ID de proceso, los archivos dentro de este directorio numerado corresponden al proceso con ese PID en particular.

Los siguientes son los archivos importantes ubicados debajo de cada directorio numerado (para cada proceso):

  • cmdline:línea de comando del comando.
  • entorno:variables de entorno.
  • fd:contiene los descriptores de archivo que están vinculados a los archivos correspondientes.
  • límites:contiene información sobre los límites específicos del proceso.
  • montajes:información relacionada con el montaje

Los siguientes son los enlaces importantes debajo de cada directorio numerado (para cada proceso):

  • cwd:enlace al directorio de trabajo actual del proceso.
  • exe:enlace al ejecutable del proceso.
  • raíz:enlace al directorio raíz del proceso.

Más ejemplos de /proc:Explore el sistema de archivos /proc de Linux

19. Protección del sistema KDE

Esto también se llama como KSysGuard. En escritorios Linux que ejecutan KDE, puede usar esta herramienta para monitorear los recursos del sistema. Además de monitorear el sistema local, esto también puede monitorear sistemas remotos.

Si está ejecutando el escritorio KDE, vaya a Aplicaciones -> Sistema -> Monitor del sistema, que iniciará KSysGuard. También puede escribir ksysguard desde la línea de comandos para ejecutarlo.

Esta herramienta muestra las siguientes dos pestañas:

  • Tabla de procesos:muestra todos los procesos activos. Puede ordenar, eliminar o cambiar la prioridad de los procesos desde aquí
  • Carga del sistema:muestra gráficos para el uso de la CPU, la memoria y la red. Estos gráficos se pueden personalizar haciendo clic derecho en cualquiera de estos gráficos.

Para conectarse a un host remoto y monitorearlo, haga clic en el menú Archivo -> Monitorear máquina remota -> especifique la dirección IP del host, el método de conexión (por ejemplo, ssh). Esto le pedirá el nombre de usuario/contraseña en la máquina remota. Una vez conectado, esto mostrará el uso del sistema de la máquina remota en las pestañas Tabla de procesos y Carga del sistema.

20. Supervisión del sistema GNOME

En escritorios Linux que ejecutan GNOME, puede usar esta herramienta para monitorear procesos, recursos del sistema y sistemas de archivos desde una interfaz gráfica. Además de monitorear, también puede usar esta herramienta de interfaz de usuario para eliminar un proceso, cambiar la prioridad de un proceso.

Si está ejecutando el escritorio GNOME, vaya a Sistema -> Administración -> Monitor del sistema, que iniciará el Monitor del sistema GNOME. También puede escribir gnome-system-monitor desde la línea de comando para ejecutarlo.

Esta herramienta tiene las siguientes cuatro pestañas:

  • Sistema:muestra la información del sistema, incluida la versión de distribución de Linux, los recursos del sistema y la información del hardware.
  • Procesos:muestra todos los procesos activos que se pueden ordenar en función de varios campos
  • Recursos:muestra los usos de CPU, memoria y red
  • Sistemas de archivos:muestra información sobre los sistemas de archivos montados actualmente

Más información:página de inicio de GNOME System Monitor

21. Conky

Conky es un monitor de sistema o X. Conky muestra información en la interfaz de usuario usando lo que llama objetos. De manera predeterminada, hay más de 250 objetos que se incluyen con conky, que muestra diversa información de monitoreo (CPU, memoria, red, disco, etc.). Soporta IMAP, POP3, varios reproductores de audio.

Puede monitorear y mostrar cualquier aplicación externa creando sus propios objetos usando secuencias de comandos. La información de seguimiento se puede mostrar en varios formatos:texto, gráficos, barras de progreso, etc. Esta utilidad es extremadamente configurable.

Más información:capturas de pantalla de Conky

22. cactus

Cacti es una interfaz de usuario basada en PHP para RRDTool. Cacti almacena los datos necesarios para generar el gráfico en una base de datos MySQL.

Las siguientes son algunas características de alto nivel de Cacti:

  • Capacidad para realizar la recopilación de datos y almacenarlos en la base de datos MySQL (o archivos de turno rotativo)
  • Varias características gráficas avanzadas están disponibles (agrupación de elementos de gráfico GPRINT, relleno automático para gráficos, manipulación de datos de gráfico usando la función matemática CDEF, todos los elementos de gráfico RRDTool son compatibles)
  • La fuente de datos puede recopilar datos locales o remotos para el gráfico
  • Capacidad de personalizar completamente la configuración del archivo Round Robin (RRA)
  • El usuario puede definir scripts personalizados para recopilar datos
  • Compatibilidad con SNMP (php-snmp, ucd-snmp o net-snmp) para la recopilación de datos
  • El sondeador incorporado ayuda a ejecutar scripts personalizados, obtener datos SNMP, actualizar archivos RRD, etc.
  • Características de plantilla de gráficos altamente flexibles
  • Opciones de visualización de gráficos fáciles de usar y personalizables
  • Cree diferentes usuarios con varios conjuntos de permisos para acceder a la interfaz de cactus
  • Se pueden establecer niveles de permisos granulares para el usuario individual
  • y mucho más..

Más información:página de inicio de cactus

23. Vnstat

vnstat es una utilidad de línea de comandos que muestra y registra el tráfico de red de las interfaces de sus sistemas. Esto depende de las estadísticas de red proporcionadas por el kernel. Por lo tanto, vnstat no agrega ninguna carga adicional a su sistema para monitorear y registrar el tráfico de la red.

vnstat sin ningún argumento le dará un resumen rápido con la siguiente información:

  • La última vez que se actualizó la base de datos vnStat ubicada en /var/lib/vnstat/
  • Desde cuando comenzó a recopilar estadísticas para una interfaz específica
  • Los datos estadísticos de la red (bytes transmitidos, bytes recibidos) de los últimos dos meses y los últimos dos días.
# vnstat
Database updated: Sat Oct 15 11:54:00 2011

   eth0 since 10/01/11

          rx:  12.89 MiB      tx:  6.94 MiB      total:  19.82 MiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Sep '11     12.90 MiB |    6.90 MiB |   19.81 MiB |    0.14 kbit/s
       Oct '11     12.89 MiB |    6.94 MiB |   19.82 MiB |    0.15 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        29 MiB |      14 MiB |      43 MiB |

	 daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday      4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
         today      2.03 MiB |    1.07 MiB |    3.10 MiB |    0.59 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated         4 MiB |       2 MiB |       6 MiB |

Use "vnstat -t" o "vnstat –top10" para mostrar los 10 días de mayor tráfico de todos los tiempos.

$ vnstat --top10

 eth0  /  top 10

    #      day          rx      |     tx      |    total    |   avg. rate
   -----------------------------+-------------+-------------+---------------
    1   10/12/11       4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
    2   10/11/11       4.07 MiB |    2.17 MiB |    6.24 MiB |    0.59 kbit/s
    3   10/10/11       2.48 MiB |    1.28 MiB |    3.76 MiB |    0.36 kbit/s
    ....
   -----------------------------+-------------+-------------+---------------

Más ejemplos de vnstat:Cómo monitorear y registrar el tráfico de red usando VNStat

24. Arriba

htop es un visor de procesos basado en ncurses. Esto es similar a top, pero es más flexible y fácil de usar. Puedes interactuar con el htop usando el mouse. Puede desplazarse verticalmente para ver la lista completa de procesos y desplazarse horizontalmente para ver la línea de comando completa del proceso.

La salida htop consta de tres secciones 1) encabezado 2) cuerpo y 3) pie de página.

Encabezado muestra las siguientes tres barras y poca información vital del sistema. Puede cambiar cualquiera de estos desde el menú de configuración de htop.

  • Uso de CPU:muestra el % utilizado en el texto al final de la barra. La barra en sí mostrará diferentes colores. Prioridad baja en azul, normal en verde, kernel en rojo.
  • Uso de memoria
  • Intercambio de uso

Cuerpo muestra la lista de procesos ordenados por % de uso de CPU. Use las teclas de flecha, página arriba, página abajo para recorrer los procesos.

Pie de página muestra los comandos del menú superior.

Más información:Captura de pantalla y ejemplos de HTOP

25. Estadísticas de enchufes:SS

ss significa estadísticas de socket. Esto muestra información similar al comando netstat.

Para mostrar todos los enchufes de escucha, haga ss -l como se muestra a continuación.

$ ss -l
Recv-Q Send-Q   Local Address:Port     Peer Address:Port
0      100      :::8009                :::*
0      128      :::sunrpc              :::*
0      100      :::webcache            :::*
0      128      :::ssh                 :::*
0      64       :::nrpe                :::*

Lo siguiente muestra solo la conexión establecida.

$ ss -o state established
Recv-Q Send-Q   Local Address:Port   Peer Address:Port
0      52       192.168.1.10:ssh   192.168.2.11:55969    timer:(on,414ms,0)

A continuación se muestran estadísticas de resumen de socket. Esto muestra el número total de enchufes desglosados ​​por tipo.

$ ss -s
Total: 688 (kernel 721)
TCP:   16 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 11

Transport Total     IP        IPv6
*         721       -         -
RAW       0         0         0
UDP       13        10        3
TCP       16        7         9
INET      29        17        12
FRAG      0         0         0

¿Qué herramienta utiliza para monitorear el rendimiento en su entorno Linux? ¿Me perdí alguna de sus herramientas de monitoreo de rendimiento favoritas? Deja un comentario.


Linux
  1. 4 herramientas de monitoreo de rendimiento de Linux basadas en CLI:top, htop, ps y vmstat

  2. Las 5 mejores herramientas de monitoreo de Linux basadas en terminales

  3. Las mejores herramientas para tomar y editar capturas de pantalla en Linux

  4. Las 5 mejores herramientas de monitoreo del sistema

  5. Las 20 mejores certificaciones y cursos de Red Hat Linux

Las 10 mejores herramientas de selección de color para el sistema Linux

Las 10 mejores herramientas de escaneo para el sistema Linux

Las 10 mejores herramientas meteorológicas para el sistema Linux

Las 10 mejores herramientas de información del sistema y hardware de Linux

Las 8 mejores herramientas para medir el rendimiento de las pruebas de estrés de Linux

Mejor editor de código de Linux:Top 11 revisado y comparado