- 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.
- 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
- 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.
- 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
- 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
- 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.
- 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