Herramientas de usuario

Herramientas del sitio


informatica:certificaciones:lpic:lpic-2:200

¡Esta es una revisión vieja del documento!


LPI Topic 200: Capacity Planning

  • 200.1: Recursos y Medidas para la resolución de problemas (6)
  • 200.2: Predicción de futuros recursos (2)

200.1: Recursos y Medidas para la Resolución de Problemas

Monitorizar recursos:

  • CPU
  • Memoria (RAM/SWAP)
  • Carga del sistema (Load Average)
  • Consumo de recursos de red (Network)

iostat

Monitor de I/O y CPU

Necesario instalar el paquete sysstat

iostat [options] [interval] [count] [device]
  • c: estadísticas CPU
  • d: estadísticas de los dispositivos

Datos de un dispositivo:

iostat /dev/sda

Ejemplo de salida:

Linux 4.19.0-14-amd64 (debian10) 	03/27/2021 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.05    0.00    0.14    0.02    0.00   99.78

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               2.91        57.48         1.63      95315       2701

Si queremos que la información de CPU (también funciona para dispositivos) se actualice cada 2 segundos, pero 5 veces:

iostat -c 2 3

Ejemplo de salida:

Linux 4.19.0-14-amd64 (debian10) 	03/27/2021 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.05    0.00    0.13    0.02    0.00   99.79


avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    0.00    0.00  100.00


avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    0.00    0.00  100.00

Salida en dispositivos

  • tps: transferencias por segundo
  • kB_read/s: lecturas por segundo en KB
  • kB_wrtn/s: escrituras por segundo en KB
  • kB_read: total de lecturas en KB
  • kB_wrtn: total de escrituras en KB

Salida en CPU

  • %user: uso CPU durante ejecución a nivel de usuario
  • %nice: uso CPU durante ejecución con nice (prioridad)
  • %system: uso CPU durante ejecución a nivel de sistema (kernel)
  • %iowait: tiempo ocioso de CPU a la espera de operaciones I/O
  • %steal: tiempo dedicado a la espera de la CPU virtual mientras el hipervisor atendría otros procesadores virtuales (si estamos virtualizando sobre la máquina)
  • %idle: tiempo ocioso de CPU sin esperar operaciones

vmstat

Estadísticas de memoria virtual sobre procesos, memoria, paginación, bloques I/O y utilización de CPU

vmstat [options] [delay] [count]
vmstat 2 3

Ejemplo de salida:

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      0 859744  12056  88900    0    0    26     1   12   33  0  0 100  0  0
 0  0      0 859736  12056  88936    0    0     0     0   20   26  0  0 100  0  0
 0  0      0 859736  12056  88936    0    0     0     0   14   18  0  0 100  0  0

Actualiza la información cada 2 segundos, 3 veces y finaliza.

Salida

Columna de procs:

  • r: indica el número de procesos actualmente en la cola de ejecución
  • b: indica el número de procesos actualmente en la cola de bloques. Estos procesos están a la espera de un dispositivo.

Columna de memory:

  • swpd: indica la cantidad de memoria virtual uytilizada en KB
  • free: indica la cantidad de memoria libre,que no está en uso
  • buff: indica la cantidad de memoria asignada a buffers, esta contiene bloques de disco sin procesar.
  • cache: indica la cantidad de memoria cache (contiene archivos)

Columna de swap:

  • si: indica la cantidad de memoria que se intercambia desde el disco (a la swap)
  • so: indica la cantidad de memoria que se intercambia hacia el disco (desde la swap)

Columna io:

  • bi: indica la cantidad de bloques por segundo que se recibe desde un dispositivo de bloques
  • bo: indica la cantidad de bloques por segundo que se envía a un dispositivo de bloques

Columna system:

  • in: indica el número de interrupciones por segundo. Las interrupciones son las peticiones que hacen los dispositivos para acceder a la CPU.
  • cs: muestra el número de cambios de contexto por segundo. La CPU tiene varios hilos de ejecución y cada uno se corresponde con un proceso. La CPU puede desatender ese hilo para pasar a otro y volver luego. Cada uno de esos “saltos” es lo que se conoce como cambio de contexto.

Columna cpu:

  • us: muestra el porcentaje de tiempo dedicado a la ejecución de código que no es del kernel
  • sy: muestra el porcentaje de tiempo dedicado a la ejecución de código del kernel
  • id: muestra el porcentaje de tiempo de inactividad
  • wa: muestra el porcentaje de tiempo de espera para I/O
  • st: muestra el porcentaje de tiempo robado por una máquina virtual

netstat

Listado de las conexiones activas de nuestra máquina. Además, permite obtener información de la red y los protocolos utilizados.

netstat [opciones]
  • i: estadísticas de las interfaces de red (como un ifconfig o ip link)
  • r: muestra las tablas de rutas (como el comando route)

Lo habitual es usarlo para listar las conexiones que tiene el sistema, ips de origen y destino, etc:

netstat -putan 

Ejemplo de salida:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/init              
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      434/sshd            
tcp        0      0 192.168.2.10:22         192.168.2.1:33500       ESTABLISHED 561/sshd: vagrant [ 
tcp6       0      0 :::111                  :::*                    LISTEN      1/init              
tcp6       0      0 :::22                   :::*                    LISTEN      434/sshd            
udp        0      0 0.0.0.0:68              0.0.0.0:*                           533/dhclient        
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/init              
udp6       0      0 :::111                  :::*                                1/init              

ps

Muestra la lista de procesos en ejecución.

Tiene muchísimas opciones, pero algunos casos típicos:

ps -ef

La más usada:

ps aux

Ejemplo de salida:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.9  21992  9976 ?        Ss   14:50   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    14:50   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        I<   14:50   0:00 [rcu_gp]
root         4  0.0  0.0      0     0 ?        I<   14:50   0:00 [rcu_par_gp]
root         6  0.0  0.0      0     0 ?        I<   14:50   0:00 [kworker/0:0H-kblockd]
root         8  0.0  0.0      0     0 ?        I<   14:50   0:00 [mm_percpu_wq]
root         9  0.0  0.0      0     0 ?        S    14:50   0:00 [ksoftirqd/0]
root        10  0.0  0.0      0     0 ?        I    14:50   0:00 [rcu_sched]
root        11  0.0  0.0      0     0 ?        I    14:50   0:00 [rcu_bh]
root        12  0.0  0.0      0     0 ?        S    14:50   0:00 [migration/0]
root        14  0.0  0.0      0     0 ?        S    14:50   0:00 [cpuhp/0]
root        15  0.0  0.0      0     0 ?        S    14:50   0:00 [cpuhp/1]
root        16  0.0  0.0      0     0 ?        S    14:50   0:00 [migration/1]
root        17  0.0  0.0      0     0 ?        S    14:50   0:00 [ksoftirqd/1]
(...)

Salida

  • UID: usuario propietario del proceso
  • PID: identificador del proceso
  • PPID
  • C
  • STIME
  • TTY: terminal a la que está asociada
  • TIME
  • CMD

pstree

Muestra la misma lista de procesos que ps y top, pero la salida se obtien en formato árbol viendo así la dependencia que tienen los procesos.

En Debian 10, pertenece al paquete psmisc

Ejemplo de salida:

systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VBoxSVC─┬─2*[VBoxHeadless───30*[{VBoxHeadless}]]
        │         ├─VBoxHeadless───29*[{VBoxHeadless}]
        │         ├─VBoxNetDHCP───2*[{VBoxNetDHCP}]
        │         └─13*[{VBoxSVC}]
        ├─VBoxXPCOMIPCD
        ├─colord───2*[{colord}]
        ├─cupsd
        ├─dbus-daemon
        ├─firefox─┬─Privileged Cont───24*[{Privileged Cont}]
        │         ├─RDD Process───2*[{RDD Process}]
        │         ├─Web Content───25*[{Web Content}]
        │         ├─2*[Web Content───24*[{Web Content}]]
        │         ├─WebExtensions───21*[{WebExtensions}]
        │         └─71*[{firefox}]
(...)

w

Muestra la información de los usuarios actualmente conectados y las mismas estadísticas que el comando uptime.

load average debe ser menor que 1. si lo supera, la carga es elevada.

Ejemplo de salida:

 16:24:36 up 36 min,  1 user,  load average: 1,43, 1,19, 0,76
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
tempwin  tty1      15:48   36:27   5:04   0.00s xinit /home/tempwin/.xinitrc -- /etc/X11/xinit

lsof

Muestra información acerca de los ficheros abiertos y sus correspondientes procesos,

lsof +d /var/log
  • +d: es para indicar directorio en lugar de fichero.

Ejemplo de salida:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
rsyslogd 363 root    7w   REG  254,0   207327 2359398 /var/log/syslog
rsyslogd 363 root    8w   REG  254,0   125147 2359400 /var/log/kern.log
rsyslogd 363 root    9w   REG  254,0    17018 2359401 /var/log/debug
rsyslogd 363 root   10w   REG  254,0   109465 2359402 /var/log/messages
rsyslogd 363 root   11w   REG  254,0    31109 2359403 /var/log/auth.log
rsyslogd 363 root   12w   REG  254,0    76530 2359399 /var/log/daemon.log
rsyslogd 363 root   13w   REG  254,0      533 2359320 /var/log/user.log

Este comando es interesante para saber qué procesos están asociados a determinados ficheros.

free

Muestra una visión en tiempo real de la cantidad de memoria física y virtual de un sistema

free [options]
  • l: muestra estadísticas detalladas del consumo de memoria
  • k: muestra las estadísticas en kB
  • m: muestra las estadísticas en MB
  • g: muestra las estadísticas en GB
  • h: formato legible por humanos
free -h

Ejemplo de salida:

              total        used        free      shared  buff/cache   available
Mem:          987Mi        51Mi       718Mi       2.0Mi       216Mi       797Mi
Swap:         979Mi          0B       979Mi

top

Muestra una visión en tiempo real del sistema en ejecución

También podemos conocer el proceso que más memoria consume (o CPU) o incluso modificar la prioridad o matarlo.

uptime

Muestra el tiempo que el sistema lleva en funcionamiento, el número de usuarios conectados y la carga del sistema en los últimos 1, 5 y 15 minutos.

sar

Recoge informes o guarda información de la actualidad del sistema para poder hacer consultas posteriormente.

sar forma parte del paquete sysstat

sar [options] [interval] [count]
sar -b 1 2

sar necesita que esté funcionando el servicio sysstat y que la recopilación de datos esté activada desde el fichero /etc/default/sysstat:

ENABLED="true"

200.2: Predicción de Futuros Recursos

Haciendo uso de las herramientas y conocimientos del topic 200.1, debería ser posible diagnosticar el uso de los recursos de los componentes o procesos específicos.

Los pasos para predecir las necesidades futuras podrían ser:

  • Decidir qué medir
  • Utilizar las herramientas adecuadas para medir y registrar los datos correspondientes y sus dispositivos
  • Analizar los resultados de la medición, comenzando por aquellos donde las fluctuaciones sean mayores.
  • Predecir las necesidades futuras basadas en el análisis.

Además de sar, collectd es una de las herramientas que se pueden utilizar para controlar una infraestructura de TI.

collectd

Deminio que recoge las estadísticas de rendimiento del sistema periódicamente y proporciona mecanismos para almacenar los valores de diferentes formas.

Las estadísticas se pueden utilizar para:

  • Los cuellos de botella de rendimiento actuales (análisis de rendimiento)
  • Predecir la carga del sistema futuro (planificación de capacidad)

Características:

  • Escrito en C (rendimiento y portabilidad)
  • Incluye más de 90 plugins
  • Proporciona características de red de gran alcance y es extensible de muchas maneras.
informatica/certificaciones/lpic/lpic-2/200.1616858809.txt.gz · Última modificación: por tempwin