Comando Linux sar
Manual completo de comandos Linux
1. ¿Qué es el comando sar?
sar (System Activity Reporter) es una poderosa herramienta de monitoreo de rendimiento en el sistema Linux, que forma parte del paquete de herramientas sysstat. Puede recopilar, informar y guardar diversa información de actividad del sistema, incluyendo:
- Uso de CPU
- Utilización de memoria
- Actividad de E/S
- Estadísticas de red
- Actividad de procesos
- Carga de dispositivos, etc.
1.1 Ventajas del comando sar
- Análisis de datos históricos: puede ver el estado del sistema en cualquier momento del pasado
- Monitoreo integral: cubre todos los indicadores clave de rendimiento del sistema
- Baja sobrecarga: la recopilación de datos tiene un impacto mínimo en el rendimiento del sistema
- Automatización: se puede configurar para recopilar datos automáticamente de forma periódica
2. Instalación y configuración básica
2.1 Instalar el paquete sysstat
En la mayoría de las distribuciones de Linux, el comando sar se obtiene instalando el paquete sysstat:
# Ubuntu/Debian sudo apt-get install sysstat # CentOS/RHEL sudo yum install sysstat # Fedora sudo dnf install sysstat
2.2 Habilitar la recopilación de datos
Después de la instalación, es necesario habilitar el servicio de recopilación de datos:
Ejemplo
sudo vi /etc/default/sysstat
# Cambiar ENABLED="false" a
ENABLED="true"
# Reiniciar el servicio
sudo systemctl restart sysstat
De forma predeterminada, sar recopila datos cada 10 minutos y los guarda en/var/log/sysstat/el directorio.
3. Sintaxis básica y parámetros comunes
3.1 Formato de sintaxis básica
sar [选项] [间隔时间] [次数]
3.2 Descripción de parámetros comunes
| Parámetro | Descripción |
|---|---|
| -A | Mostrar todos los informes |
| -u | Mostrar la utilización de CPU |
| -r | Mostrar el uso de memoria |
| -b | Mostrar estadísticas de E/S y tasas de transferencia |
| -n DEV | Mostrar estadísticas de dispositivos de red |
| -q | Mostrar la carga del sistema y la longitud de colas |
| -d | Mostrar actividad del disco |
| -P ALL | Mostrar estadísticas de cada CPU |
| -s | Especificar hora de inicio |
| -e | Especificar hora de fin |
| -f | Leer datos del archivo especificado |
4. Ejemplos de aplicación práctica
4.1 Monitoreo en tiempo real del uso de CPU
Ejemplo
sar -u 2 5
Ejemplo de salida:
Linux 5.4.0-91-generic (hostname) 03/15/2023 _x86_64_ (4 CPU) 10:30:01 AM CPU %user %nice %system %iowait %steal %idle 10:30:03 AM all 5.12 0.00 1.02 0.51 0.00 93.35 10:30:05 AM all 6.23 0.00 1.34 0.23 0.00 92.20
4.2 Ver el uso histórico de memoria
Ejemplo
sar -r
# Ver datos de una fecha específica (requiere especificar archivo)
sar -r -f /var/log/sysstat/sa15 # Datos del día 15
4.3 Monitorear la actividad de E/S del disco
Ejemplo
sar -d 1 10
4.4 Ver estadísticas de interfaces de red
Ejemplo
sar -n DEV 1 5
5. Uso avanzado y trucos
5.1 Monitoreo combinado de múltiples métricas
Ejemplo
sar -urdb 1 5
5.2 Generar informes de un período de tiempo específico
Ejemplo
sar -u -s 09:00:00 -e 10:00:00
5.3 Guardar la salida en un archivo
Ejemplo
sar -A 1 10 > system_report.log
5.4 Monitorear núcleos de CPU específicos
Ejemplo
sar -P 0 1 5
6. Guía de interpretación de datos
6.1 Interpretación de métricas de CPU
| Métrica | Significado | Rango saludable |
|---|---|---|
| %user | Uso de CPU en espacio de usuario | <70% |
| %system | Uso de CPU en espacio del kernel | <30% |
| %iowait | Tiempo de espera de CPU para E/S | <5% |
| %idle | Tiempo de inactividad de CPU | >20% |
6.2 Interpretación de métricas de memoria
| Métrica | Significado |
|---|---|
| kbmemfree | Memoria física libre (KB) |
| kbmemused | Memoria física utilizada (KB) |
| %memused | Tasa de uso de memoria |
| kbbuffers | Memoria usada por búferes (KB) |
| kbcached | Memoria usada por caché (KB) |
6.3 Interpretación de métricas de disco
| Métrica | Significado |
|---|---|
| tps | Transferencias por segundo |
| rd_sec/s | Sectores leídos por segundo |
| wr_sec/s | Sectores escritos por segundo |
| %util | Utilización del dispositivo |
7. Solución de problemas comunes
7.1 Identificación de cuellos de botella de CPU
Si%usero%systemse mantiene por encima del 80%, puede indicar:
- Aplicaciones con uso intensivo de cómputo
- Demasiadas llamadas al sistema
- Es necesario optimizar el código o aumentar los recursos de CPU
7.2 Detección de memoria insuficiente
Cuando aparecen las siguientes situaciones simultáneamente, puede haber memoria insuficiente:
%memusedSe mantiene por encima del 90%kbcachedEl valor es muy bajo- Partición de intercambio (
kbswpused) con uso elevado
7.3 Identificación de cuellos de botella de E/S
%iowaitAlto y disco%utilalto indica:
- La E/S del disco se convierte en un cuello de botella
- Puede que se necesiten dispositivos de almacenamiento más rápidos
- u optimizar las operaciones intensivas de E/S
Otras extensiones