Herramientas y métodos comunes de análisis de rendimiento de Linux

  1. Ver el tiempo de actividad de la carga del sistema
[root@localhost ~]# uptime
 10:18:27 up 6 days, 17:24,  3 users,  load average: 0.00, 0.01, 0.05

La hora actual, cuánto tiempo ha estado funcionando el sistema, cuántos usuarios han iniciado sesión y la carga promedio del sistema en los últimos 1 minuto, 5 minutos y 15 minutos. El mejor valor para el promedio de carga es 1, lo que significa que cada proceso se puede ejecutar inmediatamente sin perder ciclos de CPU. CPU de un solo núcleo, 1-2 es normal, CPU de varios núcleos, el número de núcleos es n, luego n-2n también es normal.

  1. libre Ver memoria libre y memoria usada
[root@kafka3 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           7703        2318        3750         281        1635        4802
Swap:          7935           0        7935

Similar a top, htop, htop se puede considerar como una extensión mejorada de top, pero se requiere una instalación adicional

  1. vmstat
[root@localhost ~]# vmstat 1 5
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 582132   1260 2738456    0    0     1     2   30   15  0  0 100  0  0
 0  0      0 582116   1260 2738456    0    0     0     0   65  144  0  0 100  0  0
 0  0      0 582116   1260 2738456    0    0     0     0   49  115  0  0 100  0  0
 0  0      0 582116   1260 2738456    0    0     0     0   69  149  0  1 100  0  0
 0  0      0 582116   1260 2738456    0    0     0     0   55  126  0  0 100  0  0
 [root@localhost ~]# vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 580708 748036 2106624    0    0     1     2   30   16  0  0 100  0  0

El significado de vmstat 15 es ejecutarse una vez cada 1 segundo y se ejecuta 5 veces en total.
Hay cinco columnas:

  • procs
    • r El número de procesos ejecutables (mientras se están ejecutando o esperando para ejecutarse). Muestre cuántos procesos están esperando la CPU
    • b El número de procesos en un estado de suspensión ininterrumpida. Cuántos procesos están esperando io
  • memoria
    • tamaño de la memoria virtual swpd
    • tamaño de memoria libre libre
    • tamaño de búfer de mejora
    • tamaño de la caché de la caché
    • inact la cantidad de memoria que no está activada
    • La cantidad de memoria utilizada actualmente por activo
  • intercambio
    • si intercambiar en tamaño
    • el tamaño cambió gran parte de los dos valores 0, si el bloque es más de diez, cuando el alto rendimiento ciertamente se reduce a la concurrencia
  • io refleja la eficiencia de io
    • bi el número de bloques recibidos del dispositivo de bloque
    • bo El número de bloques enviados al dispositivo de bloques.
  • El sistema suele ser el uso de funciones del sistema.
    • en el número de interrupciones por segundo, incluido el reloj
    • cs el número de cambios de contexto por segundo
  • Los siguientes cuatro parámetros de la CPU suman el 100%, que es un desglose del uso de la CPU
    • us Tiempo de ejecución del código no kernel
    • tiempo de ejecución del código del kernel sy
    • id tiempo libre
    • wa io tiempo de espera
    • st El tiempo robado de la máquina virtual.
      Usando vmstat, podemos conocer claramente el estado de la CPU, los dispositivos IO y la memoria. Proporcionar una base para que podamos encontrar cuellos de botella en el sistema.
  1. mpstat ver información de la CPU
[root@localhost ~]# mpstat -P ALL 1 2
Linux 3.10.0-327.el7.x86_64 (localhost.localdomain) 	01/11/2021 	_x86_64_	(2 CPU)

10:51:17 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:51:18 AM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:51:18 AM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:51:18 AM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

10:51:18 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:51:19 AM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:51:19 AM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:51:19 AM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:       0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:       1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

Hay dos CPU como se muestra arriba, y mpstat generará sus indicadores por separado

  • % usr Porcentaje de uso de CPU del proceso en modo de usuario
  • % nice especifica la prioridad de la tasa de uso de CPU del proceso de modo de usuario
  • % sys porcentaje de uso de CPU del proceso en modo kernel (excluidas las interrupciones de software y hardware)
  • % iowait Durante el período de solicitudes de E / S de disco pendientes, el porcentaje de CPU inactiva
  • % irq Porcentaje de uso de interrupción de hardware del servicio de CPU
  • % porcentaje de uso de interrupción de software de servicio de CPU suave
  • % de robo de CPU virtual o el porcentaje de tiempo de espera involuntario empleado por la CPU
  • % de CPU invitada que ejecuta el porcentaje de procesador virtual
  • % El porcentaje de tiempo que la CPU de gnice funciona bien
  • % de inactividad de la CPU inactiva
  1. Las estadísticas de la tarea pidstat Linux son similares a las de arriba
[root@localhost ~]# pidstat 1 3
Linux 3.10.0-327.el7.x86_64 (localhost.localdomain) 	01/11/2021 	_x86_64_	(2 CPU)

11:10:12 AM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
11:10:13 AM     0     11997    0.98    0.98    0.00    1.96     0  pidstat

11:10:13 AM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
11:10:14 AM     0     11997    1.00    2.00    0.00    3.00     0  pidstat

11:10:14 AM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
11:10:15 AM     0     11997    0.00    0.99    0.00    0.99     0  pidstat

Average:      UID       PID    %usr %system  %guest    %CPU   CPU  Command
Average:        0     11997    0.66    1.32    0.00    1.98     -  pidstat

  1. Análisis estadístico de dispositivos IO de iostat (generalmente discos, particiones)
[root@kafka3 ~]# iostat -xz 1 5
Linux 3.10.0-1127.19.1.el7.x86_64 (kafka3.sd.cn) 	01/10/2021 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.35    0.00    0.20    0.00    0.00   99.44

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.02    0.01    1.12     0.22     5.35     9.88     0.01    8.58    7.13    8.59   7.58   0.85
sdb               0.00     0.00    0.00    0.00     0.00     0.00    58.72     0.00    0.33    0.33    0.00   0.14   0.00
dm-0              0.00     0.00    0.01    0.87     0.20     5.35    12.67     0.01   11.39    7.11   11.44   9.75   0.85
dm-1              0.00     0.00    0.00    0.00     0.00     0.00    50.09     0.00   14.48   14.48    0.00  11.82   0.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00    48.19     0.00    0.56    0.56    0.00   0.30   0.00
dm-3              0.00     0.00    0.00    0.00     0.00     0.00    48.19     0.00    0.40    0.40    0.00   0.23   0.00
dm-4              0.00     0.00    0.00    0.00     0.00     0.00    48.19     0.00    0.42    0.42    0.00   0.30   0.00
dm-5              0.00     0.00    0.00    0.00     0.00     0.00    83.98     0.00   13.35   16.40    7.48  11.57   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.25    0.00    0.25    0.50    0.00   99.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    1.00    3.00     8.00    12.00    10.00     0.04    9.25   14.00    7.67   9.25   3.70
dm-0              0.00     0.00    1.00    2.00     8.00    12.00    13.33     0.04   12.33   14.00   11.50  12.33   3.70

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

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util

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

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util

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

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util

Hay muchos parámetros, puede consultar el manual del hombre para obtener más detalles, aquí están los puntos importantes. Parámetros como
rrqm / s wrqm / s
significan el número de lecturas (r) y escrituras (r) combinadas por segundo. Es decir, cuántas solicitudes lógicas se combinan en una solicitud para escribir en el disco real
r / sw / s rkB / s wkB / s
solicitudes de lectura y escritura enviadas al dispositivo por segundo, sector.
avgrq-sz avgqu-sz El tamaño promedio (promedio) (sz) enviado al dispositivo. qu representa la cola de solicitudes, rq representa el tamaño de la solicitud y la unidad es un sector.
await r_await w_await El tiempo de espera enviado al dispositivo io, en milisegundos.
7. detección de red sar
7.1 comprobar el rendimiento de la tarjeta de red

[root@localhost ~]# sar -n DEV 1 3
Linux 3.10.0-327.el7.x86_64 (localhost.localdomain) 	01/11/2021 	_x86_64_	(2 CPU)

11:33:07 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
11:33:08 AM     ens32      2.00      0.00      0.14      0.00      0.00      0.00      0.00
11:33:08 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:33:08 AM virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:33:08 AM    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:33:08 AM     ens33      2.00      0.00      0.14      0.00      0.00      0.00      0.00

11:33:08 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
11:33:09 AM     ens32      2.00      1.00      0.12      0.65      0.00      0.00      0.00
11:33:09 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:33:09 AM virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:33:09 AM    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:33:09 AM     ens33      1.00      0.00      0.06      0.00      0.00      0.00      0.00

11:33:09 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
11:33:10 AM     ens32      1.00      1.00      0.06      0.65      0.00      0.00      0.00
11:33:10 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:33:10 AM virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:33:10 AM    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:33:10 AM     ens33      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:        ens32      1.67      0.67      0.10      0.43      0.00      0.00      0.00
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:       virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        ens33      1.00      0.00      0.07      0.00      0.00      0.00      0.00

Rxpck / s: número total de paquetes recibidos por segundo
txpck / s: número total de paquetes transmitidos por segundo
rxcmp / s txcmp / s cm significa compresión comprimida
7.2

[root@localhost ~]#  sar -n TCP 1 3
Linux 3.10.0-327.el7.x86_64 (localhost.localdomain) 	01/11/2021 	_x86_64_	(2 CPU)

11:39:10 AM  active/s passive/s    iseg/s    oseg/s
11:39:11 AM      0.00      0.00      0.00      0.00
11:39:12 AM      0.00      0.00      1.00      1.00
11:39:13 AM      0.00      0.00      1.00      1.00
Average:         0.00      0.00      0.67      0.67
[root@localhost ~]#  sar -n TCP,ETCP 1 3
Linux 3.10.0-327.el7.x86_64 (localhost.localdomain) 	01/11/2021 	_x86_64_	(2 CPU)

11:40:04 AM  active/s passive/s    iseg/s    oseg/s
11:40:05 AM      0.00      0.00      1.00      0.00

11:40:04 AM  atmptf/s  estres/s retrans/s isegerr/s   orsts/s
11:40:05 AM      0.00      0.00      0.00      0.00      0.00

11:40:05 AM  active/s passive/s    iseg/s    oseg/s
11:40:06 AM      0.00      0.00      1.00      1.00

11:40:05 AM  atmptf/s  estres/s retrans/s isegerr/s   orsts/s
11:40:06 AM      0.00      0.00      0.00      0.00      0.00

11:40:06 AM  active/s passive/s    iseg/s    oseg/s
11:40:07 AM      0.00      0.00      1.00      1.00

11:40:06 AM  atmptf/s  estres/s retrans/s isegerr/s   orsts/s
11:40:07 AM      0.00      0.00      0.00      0.00      0.00

Average:     active/s passive/s    iseg/s    oseg/s
Average:         0.00      0.00      1.00      0.67

Average:     atmptf/s  estres/s retrans/s isegerr/s   orsts/s
Average:         0.00      0.00      0.00      0.00      0.00

Tres indicadores clave

  • active / s: el número de veces que las conexiones TCP han hecho una transición directa al estado SYN-SENT desde el estado CLOSED por segundo [tcpActiveOpens]. Significa el número de conexiones TCP iniciadas por esta máquina (s)
  • pasivo / s : El número de veces que las conexiones TCP han hecho una transición directa al estado SYN-RCVD desde el estado LISTEN por segundo [tcpPassiveOpens]. 远程 发起 的 TCP 连接 数 / s
  • retransmisiones / s: El número total de segmentos retransmitidos por segundo, es decir, el número de segmentos TCP transmitidos que contienen uno o más octetos transmitidos previamente [tcpRetransSegs]. Un gran número de retransmisiones / s de mensajes
    significa pérdida de paquetes.
  1. netstat
    Las conexiones de red de impresión, las tablas de enrutamiento, las estadísticas de interfaz, las conexiones de enmascaramiento y las membresías de multidifusión
    se utilizan principalmente para detectar el estado de la red, que puede no estar directamente relacionado con el "rendimiento", pero también puede ayudarnos a encontrar mucha información. Por ejemplo, cuál es el programa actual con más TIME_WAIT.
[root@localhost ~]# netstat -anpt
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:3306            0.0.0.0:*               LISTEN      16308/mysqld        
tcp        0      0 0.0.0.0:1234            0.0.0.0:*               LISTEN      1584/distccd        
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      2823/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1577/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1580/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2235/master         
tcp        0      0 10.10.154.22:22        10.10.157.52:51734     ESTABLISHED 27116/sshd: root@no 
tcp        0      0 10.10.154.22:22        10.10.157.52:56956     ESTABLISHED 7862/sshd: root@pts 
tcp        0      0 10.10.154.22:3306      10.10.154.148:58896    ESTABLISHED 16308/mysqld        
tcp6       0      0 :::22                   :::*                    LISTEN      1577/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1580/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      2235/master

Los parámetros comunes son los siguientes

-t						tcp
-a, --all                display all sockets (default: connected)
-n, --numeric            don't resolve names
-p, --programs           display PID/Program name for sockets
-l, --listening          display listening server sockets
``


参考  
[0] https://baike.baidu.com/item/uptime/8818329?fr=aladdin  
[1] https://blog.csdn.net/tencent_teg/article/details/106561235  
[2] https://linux.die.net/man/1/sar  
[3] https://linux.die.net/man/1/iostat  
[4] https://linux.die.net/man/1/pmstat
[5] 高性能MySQL

Supongo que te gusta

Origin blog.csdn.net/niu91/article/details/112497344
Recomendado
Clasificación