Prólogo
A veces, necesitamos verificar la carga de CPU del sistema y otros valores de rendimiento para determinar si el sistema tiene algún tipo de falla (caídas frecuentes o desaceleración repentina). razones. Sin embargo, los comandos simples top, uptime, w y otros solo pueden ver la carga actual, pero no pueden ver la situación de carga de la CPU en un cierto período de tiempo en el pasado.
Aquí hay un comando para el análisis de rendimiento, que se puede utilizar para ver la carga de la CPU (rendimiento del sistema) en un cierto período de tiempo en el pasado.
Para ver el uso de la CPU durante un período de tiempo determinado, vaya directamente a la Sección 7.
1. Concepto sar
sysstat es un paquete de herramientas de uso común en sistemas Linux, y sar es una de las herramientas del paquete de herramientas sysstat en Linux que se utiliza para monitorear el rendimiento de Linux. sistemas.
El kit de herramientas sysstat contiene dos tipos de herramientas: herramientas de visualización instantánea (iostat, mpstat, sar) herramientas de estadísticas acumulativas (sar)
Por lo tanto, el comando sar también se denomina sistema; Informe de situación de actividad. No sólo puedes ver el rendimiento del servidor en tiempo real, sino que también puedes realizar estadísticas acumulativas.
2. El alcance que sar puede monitorear
Estado de lectura y escritura de archivos
Uso de llamadas al sistema
Situación de uso de E/S de disco
Estadísticas de uso de CPU
Uso de memoria
Actividad del proceso
Actividades relacionadas con IPC
Tres, uso del comando sar entorno
formato de uso del comando sar:
sar+ opción de línea de comando (opcional) + intervalo (opcional) + tiempos (opcional)
Comúnmente usado para determinar un sistema problema de cuello de botella
Para consultar la CPU, puede usar sar -u y sar -q para verificar la memoria de consulta disponible sar -B, sar -r y sar -W para verificar la consulta io disponible sar -b , sar -u y sar -d, etc. para ver
IV. Proceso de implementación de estadísticas acumulativas del comando sar
El sistema llamará a los tres comandos en /usr/lib64/sa. / Se utiliza una herramienta (sa1 sa2 sadc) para implementar la función de registrar periódicamente la información de rendimiento actual del sistema.
sa1: recopila y escribe información diaria sobre el rendimiento del sistema en un archivo binario, que es el programa front-end de sadc
sa2: recopila y escribe información diaria sobre la actividad del sistema en un archivo de resumen , que sirve como programa front-end de sar
sadc: recopila los datos dinámicos del sistema y los escribe en un archivo binario, que sirve como back-end de la herramienta sar
5. registro de sar
sar tiene una función similar al corte de registros. Pondrá el registro en /var/log/ según las tareas programadas en /etc/cron.d/sysstat. /中
Nota: El registro es un archivo binario y no se puede ver usando herramientas más, menos o vim. Debe usar sar o sadf
La tarea programada se puede modificar según. según las necesidades
Una forma de comprobar el rendimiento del servidor durante un período de tiempo determinado es utilizar el comando sar para ver el archivo de registro del día
sar -f /var /log/sa/sa15
[root@ lib64]#sar-f/var/log/sa/sa15Linux3.10.0-327.el7.x86_64(ops-node7)07/15/2018_x86_64_(24CPU )12:00:01AMCPU%user% nice%system%iowait%steal%idle12:10:01AMall1.350.000.850.120.0097.6712:20:01AMall1.320.000.860.110.0097.7112:30:02AMall1.370.000.870.1 10.0097.6512:4 0:01AMall1.320.000.910.110.0097.6612: 50:01AMall1.350.000.890.110.0097.6501:00:01AMall1.360.000.870.110.0097.6601:10:01AMall1.360.000. 850.110.0097.6801:20:01AMall1.350.000 .890.100.0097.6601: 30:01AMall1.320.000.890.110.0097.6801: 40:01AMall1.290.000.950.110.0097.6501:50:01AMall1.350.000.880.120.0097.6402:00:01AMall1.340.000 .880.110.0097.6802:10:01AMall1.330.000 .900.110.0097.6502: 20:01AMall1.360.000.870.120.0097.6502: 30:01AMall1.350.000.850.120.0097.6802:40:01AMall1.410.000.920.120.0097.5602:50:01AMall1.570.000 .950.130.0097.3503:00:01AMall4.210.000 .810.160.0094.8103: 10:01AMall2.500.000.870.130.0096.5003: 20:01AMall1.370.000.870.120.0097.6503:30:01AMall1.360.000.950.130.0097.5603:40:01AMall1.480.000 .970.240.0097.3003:50:01AMall1.350.010 .910.130.0097.6004: 00:01AMall1.390.000.950.190.0097.4704: 10:01AMall1.360.000.990.130.0097.52
Nota:
Cuando sar ve el rendimiento o sus registros, se utiliza el formato de 12/24 horas; el registro se corta desde las 12 en punto de anoche hasta las 12 en punto; hoy como un día; de forma predeterminada, solo el registro de un mes
6. Explicación detallada de los parámetros del comando sar y los elementos de salida
1 formato
Uso: sar + opción + intervalo de tiempo (opcional) + tiempos (opcional)
intervalo: período de muestreo, la unidad es el segundo conteo: número de muestreo, el valor predeterminado es 1 opciones: opciones de línea de comando
2 comúnmente opciones utilizadas
- A ? Suma de todos los informes -B ? Imprimir estadísticas de la página de memoria -b ? Imprimir estadísticas de E/S y tasa de transferencia -C ? Imprimir cada dispositivo de bloque Información de actividad -H ? Información de utilización del espacio de intercambio de salida -h ? Información de ayuda de salida -p ? promedio del sistema Estadísticas de estado de carga -R ? Estadísticas de la página de memoria de salida -r ? Estadísticas de memoria de salida y espacio de intercambio -S Información de utilización del espacio de intercambio de salida -t ¿Leer un registro en /var/log/sa/? datos -u ? Estadísticas de salida para el uso general de la CPU -V ? Información de versión de salida -v ? Estadísticas de estado de la tabla del kernel (estadísticas para inodos, archivos y otras tablas del kernel) -W ? estadísticas de conversión del sistema -y? Generar información de actividad del dispositivo terminal -----------I? Generar estadísticas de interrupción especificadas y luego agregar parámetros {...|SUM|ALL|XALL}... el número de interrupción SUM ? Especifique la salida del número total de interrupciones recibidas por segundo ALL ? Especifique la salida de las primeras 16 interrupciones XALL Especifique la salida de toda la información de interrupción ------ -----P ? información estadística de la parte especificada de la CPU y luego agregue el parámetro {cpu|ALL}cpu ? Especifique cpuALL ? Generar los datos estadísticos de las CPU individuales y generales ----------- n ? (tarjeta de red) información estadística de estado y luego agregue el parámetro {DEV|EDEV|NFS|NFSD|SOCK|ALL} DEV ? Información estadística del dispositivo de red de salida EDEV Estadísticas de error del dispositivo de red de salida NFS ? estadísticas de actividad del servidor SOCK Generar estadísticas de uso de sockets de red ALL ? Generar todos los tipos de estadísticas de actividad de red -----------f Leer información de datos de un archivo. Generalmente lea el registro sar, también puede leer el archivo generado por la opción -o, agregue el nombre del archivo -o? Guarde la información de salida sar en el archivo, agregue el nombre del archivo -i? Especifique la longitud del intervalo, en segundos - s ? Especifica la hora de inicio para generar datos estadísticos (el formato es hh:mm:ss; por ejemplo, 01:00:00)? -e ? opción.
Si no hay ningún valor, el valor predeterminado es 18:00:00 (el formato es hh:mm:ss; por ejemplo, 09:00:00)
3 elementos de salida
<1>Salida de la CPU
sar -u
%usr ? El porcentaje de tiempo que la CPU pasa ejecutando procesos en modo de usuario %nice ? operaciones y el tiempo total de CPU ocupado Porcentaje %La CPU del sistema está en modo sistema (modo kernel), el porcentaje de tiempo ejecutando el proceso %iowait CPU se utiliza para esperar a que se completen las operaciones de E/S (esperando la entrada y salida para completarse), y el porcentaje del tiempo total de CPU ocupado %steal El programa de administración es otro El porcentaje de procesos virtuales esperando que la CPU virtual proporcione servicios %idle El porcentaje de tiempo de inactividad de la CPU
Nota:
Si el valor de %iowait es demasiado alto, significa que hay un cuello de botella de E/S en el disco duro. Si % Un valor inactivo alto indica que la CPU está inactiva. es alto pero la respuesta del sistema es lenta, es posible que la CPU esté esperando la asignación de memoria. En este momento, la capacidad de la memoria debe aumentarse. Si el valor de% inactivo continúa siendo inferior a 10, la CPU del sistema está procesando. La capacidad es relativamente baja, lo que indica que el recurso más exigente del sistema es la CPU
<2>E/S y salida de velocidad de transferencia
sar -b
tps La cantidad de solicitudes de datos del dispositivo de disco por segundo, incluidas las solicitudes de lectura y escritura, que es la suma de rtps y wtps. Después de emitir cada IO, se fusionarán varias solicitudes en una solicitud de disco de E/S. Aquí, tps se refiere al recuento de solicitudes después de las solicitudes fusionadas. rtps ¿La cantidad de solicitudes de lectura al dispositivo de disco por segundo? dispositivo por segundo Número de solicitudes pan/s La cantidad de datos leídos desde el dispositivo físico por segundo, la unidad es bloques/s bwrtn/s La cantidad de datos escritos en el dispositivo físico por segundo, la unidad es bloques/s p>
< 3>Salida de uso del dispositivo
sar -d
Dispositivo de disco DEV, con el parámetro -p puede imprimir los nombres de los dispositivos de disco como sda; sin el parámetro -p, el dispositivo se muestra como dev253-0, etc. La cantidad de veces que tps solicita datos del dispositivo de disco por segundo, incluidas las solicitudes de lectura y escritura, es la suma de rtps y wtps.
Después de emitir cada IO, se fusionarán varias solicitudes en una solicitud de disco de E/S. Aquí, tps se refiere al recuento de solicitudes después de fusionar solicitudes. rd_sec/s El número de sectores de lectura por segundo wr_sec/s? de avgrq-sz? ¿El tamaño de datos promedio (sector) de cada operación de E/S del dispositivo? avgqu-sz? ¿La longitud promedio de la cola de solicitudes de disco en espera? procesamiento, incluido el tiempo de espera de la cola de solicitudes (unidad: milisegundos) svctm ? El tiempo promedio que tarda el sistema en procesar cada solicitud, excluyendo el tiempo empleado en la cola de solicitudes %util El porcentaje de solicitudes de E/S en la CPU
<4> Salida de estadísticas del dispositivo de red
sar -n EDEV
IFACE? Nombre del dispositivo de red rxpck/s Número de paquetes recibidos por segundo txpck/s Número de paquetes transmitidos por segundo rxbyt/s por El número de bytes recibidos por segundo (unidad: byte) txbyt/s El número de bytes transmitidos por segundo (unidad: byte) rxkB/s La cantidad de datos recibidos por segundo (unidad: kB) txkB/s La cantidad de datos enviados por segundo (la unidad es kB) rxcmp/s La cantidad de paquetes comprimidos recibidos por segundo txcmp/s La cantidad de paquetes comprimidos transmitidos por segundo rxmcst/s La cantidad total de paquetes de multidifusión (multidifusión) recibidos por segundo Solución de problemas de fallas del equipo de red
<5>Salida de información de falla del dispositivo de red
EDEV |egrep 'eth0|IFACE' (esta vez se especifica la tarjeta de red etho0, se pueden completar otras tarjetas de red in)
Nombre del dispositivo de red IFACE rxerr /s Número de paquetes defectuosos recibidos por segundo txerr /s Número de errores por segundo al transmitir paquetes coll /s Número de colisiones por segundo al transmitir paquetes rxdrop /s Número de paquetes descartados por segundo al recibir paquetes (falta de caché causada por) txdrop/s La cantidad de paquetes descartados por segundo al transmitir paquetes (causada por la falta de almacenamiento en caché) txcarr/s La cantidad de errores de transmisión que ocurrieron por segundo al transmitir paquetes rxfram /s El número de errores de verificación de tramas que ocurrieron por segundo al recibir paquetes El número de errores de desbordamiento del búfer por segundo cuando rxfifo/s recibe paquetes El número de errores de desbordamiento del búfer por segundo cuando txfifo/s transmite paquetes
<6>Salida del estado de paginación de la memoria
p>sar -B
pgpgin/s El número de bytes reemplazados del espacio en disco o espacio de intercambio a la memoria por segundo (unidad: KB) pgpgout /s reemplazados de la memoria al espacio en disco o por segundo La cantidad de bytes de espacio de intercambio (unidad: KB) falla/s La cantidad de fallas de página generadas por el sistema por segundo (fallas de página primaria más fallas de página secundaria) majflt/s El número de errores de página primaria generados por segundo pgfree/s El número de errores de página generados por el sistema por segundo Número de páginas colocadas en la cola inactiva pgscank/s Número de páginas escaneadas por kswapd por segundo pgscand/s Número de páginas escaneadas directamente por segundo pgsteal/s Páginas borradas de la caché para satisfacer las necesidades de memoria por segundo Número %vmeff El porcentaje de páginas borradas por segundo respecto del total de páginas escaneadas
<7>Longitud de la cola de proceso y salida promedio del estado de carga p>
sar -q
runq-sz ? La longitud de la cola de ejecución, la cantidad de procesos esperando para ejecutarse
plist-sz La cantidad de procesos y subprocesos en la lista de procesos
ldavg-1 ? La carga promedio del sistema en el último minuto
ldavg-5 ¿Promedio de carga del sistema en los últimos 5 minutos
ldavg-? 15 Promedio de carga del sistema en los últimos 15 minutos
<8>Estado de la memoria y el espacio de intercambio Salida
<p> sar -r
kbmemfree La cantidad de memoria libre (unidad: KB) kbmemused La cantidad de memoria utilizada, excluyendo la memoria utilizada por el kernel (unidad: KB) %memused El porcentaje de memoria utilizada kbbuffers búfer del núcleo Búfer de área, la cantidad de memoria utilizada (en KB) kbcached La cantidad de memoria utilizada por los datos de caché del kernel (en KB) kbcommit garantiza la memoria requerida por el sistema actual, es decir, la memoria requerida para garantizar que no se desborde (RAM+swap) %commitkbcommit y el porcentaje de memoria total
<9>Salida de información de actividad de intercambio del sistema
sar -W
pswpin/s ? swap in por segundo El número de páginas de intercambio
pswpout/s? El número de páginas de intercambio intercambiadas por el sistema por segundo
7. Ejemplos de uso de sar: vea la situación en un cierto periodo de tiempo
<1>Comprueba la CPU de 1 am a 3 am
sar -s 01:00:00 -e 03:00:00
<2>Compruebe la CPU de 1 am a 3 am La carga promedio del sistema a las 3 en punto
Si desea ver otro rendimiento durante un período de tiempo determinado, agregue las opciones correspondientes
sar -s 01:00:00 -e 03:00:00 - q
<3>Comprueba la CPU el día 3 de este mes
Nota :
Esta operación requiere verificar el registro sar (ya presentado en la Sección 5)
Solo se guarda un mes de forma predeterminada
Al ver el rendimiento sar o sus registros , preste atención a si está utilizando el formato de 12 o 24 horas
El corte del registro es Un día es desde las 12 en punto de anoche hasta las 12 en punto de hoy
cd/var/log/sa/sar -f sa03