Herramientas de usuario

Herramientas del sitio


informatica:certificaciones:lpic:lpic-2:200

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:certificaciones:lpic:lpic-2:200 [2021/03/27 16:25] – [lsof] tempwininformatica:certificaciones:lpic:lpic-2:200 [2021/04/10 20:16] (actual) – borrado tempwin
Línea 1: Línea 1:
-====== 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 
- 
-<WRAP center round info 60%> 
-Necesario instalar el paquete ''sysstat'' 
-</WRAP> 
- 
- 
-<code> 
-iostat [options] [interval] [count] [device] 
-</code> 
- 
-  * ''c'': estadísticas CPU 
-  * ''d'': estadísticas de los dispositivos 
- 
-Datos de un dispositivo: 
- 
-<code bash> 
-iostat /dev/sda 
-</code> 
- 
-Ejemplo de salida: 
- 
-<code> 
-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/   kB_wrtn/   kB_read    kB_wrtn 
-sda               2.91        57.48         1.63      95315       2701 
-</code> 
- 
-Si queremos que la información de CPU (también funciona para dispositivos) se actualice cada 2 segundos, pero 5 veces: 
- 
-<code bash> 
-iostat -c 2 3 
-</code> 
- 
-Ejemplo de salida: 
- 
-<code> 
-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 
-</code> 
- 
-=== 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 
- 
-<code> 
-vmstat [options] [delay] [count] 
-</code> 
- 
-<code bash> 
-vmstat 2 3 
-</code> 
- 
-Ejemplo de salida: 
- 
-<code> 
-procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- 
-  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 
-  0      0 859744  12056  88900    0    0    26       12   33  0  0 100  0  0 
-  0      0 859736  12056  88936    0    0           20   26  0  0 100  0  0 
-  0      0 859736  12056  88936    0    0           14   18  0  0 100  0  0 
-</code> 
- 
-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. 
- 
-<code bash> 
-netstat [opciones] 
-</code> 
- 
-  * ''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: 
- 
-<code bash> 
-netstat -putan  
-</code> 
- 
-Ejemplo de salida: 
- 
-<code> 
-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 :::111                  :::*                    LISTEN      1/init               
-tcp6            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 :::111                  :::*                                1/init               
-</code> 
-==== ps ==== 
- 
-Muestra la lista de procesos en ejecución. 
- 
-Tiene muchísimas opciones, pero algunos casos típicos: 
- 
-<code bash> 
-ps -ef 
-</code> 
- 
-La más usada: 
- 
-<code bash> 
-ps aux 
-</code> 
- 
-Ejemplo de salida: 
- 
-<code> 
-USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 
-root          0.0  0.9  21992  9976 ?        Ss   14:50   0:00 /sbin/init 
-root          0.0  0.0      0     0 ?        S    14:50   0:00 [kthreadd] 
-root          0.0  0.0      0     0 ?        I<   14:50   0:00 [rcu_gp] 
-root          0.0  0.0      0     0 ?        I<   14:50   0:00 [rcu_par_gp] 
-root          0.0  0.0      0     0 ?        I<   14:50   0:00 [kworker/0:0H-kblockd] 
-root          0.0  0.0      0     0 ?        I<   14:50   0:00 [mm_percpu_wq] 
-root          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] 
-(...) 
-</code> 
- 
-=== 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. 
- 
-<WRAP center round info 60%> 
-En Debian 10, pertenece al paquete ''psmisc'' 
-</WRAP> 
- 
- 
-Ejemplo de salida: 
- 
-<code> 
-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}] 
-(...) 
-</code> 
-==== w ==== 
- 
-Muestra la información de los usuarios actualmente conectados y las mismas estadísticas que el comando ''uptime''. 
- 
-<WRAP center round tip 60%> 
-//load average// debe ser menor que 1. si lo supera, la carga es elevada. 
-</WRAP> 
- 
-Ejemplo de salida: 
- 
-<code> 
- 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 
-</code> 
-==== lsof ==== 
- 
-Muestra información acerca de los ficheros abiertos y sus correspondientes procesos, 
- 
-<code bash> 
-lsof +d /var/log 
-</code> 
- 
-  * ''+d'': es para indicar directorio en lugar de fichero. 
- 
-Ejemplo de salida: 
- 
-<code> 
-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 
-</code> 
- 
-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 
- 
-<code> 
-free [options] 
-</code> 
- 
-  * ''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 
- 
-==== 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. 
- 
-<WRAP center round info 60%> 
-**sar** forma parte del paquete **sysstat** 
-</WRAP> 
- 
-<code> 
-sar [options] [interval] [count] 
-</code> 
- 
-<code bash> 
-sar -b 1 2 
-</code> 
- 
- 
-sar necesita que esté funcionando el servicio ''sysstat'' y que la recopilación de datos esté activada desde el fichero ''/etc/default/sysstat'': 
- 
-<code bash> 
-ENABLED="true" 
-</code> 
-===== 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.1616858752.txt.gz · Última modificación: por tempwin