Estadísticas del sistema: sar, dstat, uptime, /proc/stat

Introducción

Para obtener una visión global del rendimiento del sistema — CPU, memoria, disco y red de forma conjunta — existen herramientas que combinan múltiples fuentes. También es útil acceder directamente a los ficheros virtuales del kernel en /proc para obtener datos en bruto.

uptime y w — Carga del sistema

El load average (carga media) indica cuántos procesos esperaban CPU o I/O en los últimos 1, 5 y 15 minutos. En un sistema con N CPUs, un load average de N significa que las CPUs están al 100%.

Uso:


$ uptime
 10:32:15 up 3 days,  2:14,  2 users,  load average: 0,45, 0,62, 0,58

$ w                      # uptime + usuarios conectados + lo que están ejecutando
          
  • Load average < número de CPUs → sistema sin presión
  • Load average > número de CPUs → hay procesos esperando (posible saturación)
  • Ver número de CPUs: nproc o lscpu | grep '^CPU(s)'

sar — System Activity Reporter

Parte del paquete sysstat. Recoge estadísticas de CPU, memoria, disco y red de forma periódica y permite consultar el historial. Es la herramienta estándar para análisis de rendimiento retrospectivo en servidores Linux.

Activación del demonio de recogida:


# apt install sysstat
# systemctl enable --now sysstat
# En /etc/default/sysstat cambiar ENABLED="false" a ENABLED="true"
          

Comandos principales:


$ sar                    # CPU del día actual (datos del demonio)
$ sar 2 5                # CPU en tiempo real: 5 muestras cada 2 segundos
$ sar -r 2 5             # memoria
$ sar -d 2 5             # actividad de disco
$ sar -n DEV 2 5         # estadísticas de red por interfaz
$ sar -f /var/log/sysstat/sa20   # datos históricos del día 20
          

Columnas CPU (sar sin opciones):

  • %user → tiempo en procesos de usuario
  • %system → tiempo en llamadas al kernel
  • %iowait → tiempo esperando I/O — si es alto, el disco es el cuello de botella
  • %idle → tiempo libre

dstat / dool — Monitor combinado en tiempo real

Combina en una sola salida las estadísticas de CPU, disco, red, memoria y sistema. Es el reemplazo moderno de vmstat, iostat y netstat juntos. En distribuciones recientes puede llamarse dool.

Instalación:


# apt install dstat       # Debian/Ubuntu
# dnf install dstat       # Fedora/RHEL
          

Uso:


$ dstat                  # vista por defecto: CPU, disco, red, paginación, sistema
$ dstat -cdngy           # CPU, disco, net, paginación, sistema
$ dstat --top-cpu        # proceso que más CPU consume
$ dstat --top-io         # proceso que más I/O genera
$ dstat 2 10             # 10 muestras cada 2 segundos
          

Salida típica:


----total-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read  writ| recv  send|  in   out | int   csw
  5   2  92   1   0|  12k   48k|   0     0 |   0     0 | 312   654
          

/proc/stat y /proc/loadavg — Ficheros del kernel

Los ficheros bajo /proc son la fuente primaria de todas las herramientas de monitorización. Son útiles en scripts cuando no están instaladas las herramientas de usuario.

/proc/stat:


$ cat /proc/stat
cpu  12345 678 9012 345678 1234 0 56 0 0 0
cpu0  6123 340 4512 172345 612 0 28 0 0 0
cpu1  6222 338 4500 173333 622 0 28 0 0 0
...
          

Los campos son: user, nice, system, idle, iowait, irq, softirq, steal (tiempos acumulados en jiffies).

/proc/loadavg:


$ cat /proc/loadavg
0.45 0.62 0.58 2/312 14523
          

Campos: load avg 1min, 5min, 15min, procesos ejecutando/total, último PID creado.

/proc/cpuinfo y /proc/meminfo:


$ grep 'model name' /proc/cpuinfo | head -1    # modelo de CPU
$ grep 'cpu MHz' /proc/cpuinfo | head -1       # frecuencia actual
$ grep MemAvailable /proc/meminfo              # memoria disponible
          

Resumen: qué herramienta usar en cada situación

  • Sistema lento en generaluptime (load average) + dstat
  • Proceso que consume CPUtop / htop
  • Proceso que consume memoriasmem -s pss -r
  • Disco llenodf -h + du -h --max-depth=1
  • Disco lento (I/O)iostat -x 2 + iotop -o
  • Análisis históricosar -f /var/log/sysstat/saXX

El conocimiento de estas herramientas es fundamental para el examen LPIC-1 (objetivo 103.4) y para la administración diaria de servidores Linux.

Prioridades de proceso y control de jobs: nice, renice, bg, fg, jobs, nohup

Índice de la sección

Índice del curso