2.3. Diskdevstat y netdevstat
Diskdevstat y netdevstat son herramientas de SystemTap que colectan información detallada sobre la actividad de disco y de la red de todas las aplicaciones que se ejecutan en un sistema. Estas herramientas fueron inspiradas por PowerTOP, la cual muestra el número de despertadores de CPU por cada aplicación por segundo (consulte la Sección 2.2, “PowerTOP”). La estadística que recogen estas herramientas le permiten identificar aplicaciones que desperdician energía con operaciones de E/S muy pequeñas más que con las más grandes. Otras herramientas de monitorización que solo miden velocidades de transferencia no ayudan a identificar este tipo de uso.
Instalar estas herramientas con SystemTap con el comando:
yum install systemtap tuned-utils kernel-debuginfo
yum install systemtap tuned-utils kernel-debuginfo
Ejecute las herramientas con el comando:
diskdevstat
diskdevstat
o el comando:
netdevstat
netdevstat
Ambos comandos pueden tomar hasta tres parámetros, así:
diskdevstat update_interval duración_total mostrar_histograma
netdevstat update_interval duración_total mostrar_histograma
- actualizar_intervalo
- El tiempo en segundos entre actualizaciones de la pantalla. Predeterminado:
5
- duración_total
- El tiempo en segundos para el total. Predeterminado:
86400
(1 día) - mostrar_histograma
- Indica si hacer histograma para todos los datos recolectados al final de la ejecución.
La salida se parece a la de PowerTOP. A continuación, una muestra de una ejecución más larga de diskdevstat en un sistema que ejecuta Fedora 10 KDE 4.2:
Las columnas son:
- PID
- El ID de proceso de la aplicación
- UID
- El ID de usuario bajo el cual se ejecutan las aplicaciones
- DEV
- El dispositivo en el cual la E/S tienen lugar
- WRITE_CNT
- El número total de operaciones de escritura
- WRITE_MIN
- El tiempo mínimo para dos escritos consecutivos (en segundos)
- WRITE_MAX
- El tiempo máximo para dos escritos consecutivos (en segundos)
- WRITE_AVG
- El tiempo promedio para dos escritos consecutivos (en segundos)
- READ_CNT
- El número total de operaciones de lectura
- READ_MIN
- El tiempo mínimo para dos lecturas consecutivas (en segundos)
- READ_MAX
- El máximo tiempo para dos lecturas consecutivas (en segundos)
- READ_AVG
- El tiempo promedio para dos lecturas consecutivas (en segundos)
- COMMAND
- El nombre del proceso
En este ejemplo, tres aplicaciones muy obvias llaman la atención:
PID UID DEV WRITE_CNT WRITE_MIN WRITE_MAX WRITE_AVG READ_CNT READ_MIN READ_MAX READ_AVG COMMAND 2789 2903 sda1 854 0.000 120.000 39.836 0 0.000 0.000 0.000 plasma 2573 0 sda1 63 0.033 3600.015 515.226 0 0.000 0.000 0.000 auditd 2153 0 sda1 26 0.003 3600.029 1290.730 0 0.000 0.000 0.000 rsyslogd
PID UID DEV WRITE_CNT WRITE_MIN WRITE_MAX WRITE_AVG READ_CNT READ_MIN READ_MAX READ_AVG COMMAND
2789 2903 sda1 854 0.000 120.000 39.836 0 0.000 0.000 0.000 plasma
2573 0 sda1 63 0.033 3600.015 515.226 0 0.000 0.000 0.000 auditd
2153 0 sda1 26 0.003 3600.029 1290.730 0 0.000 0.000 0.000 rsyslogd
Estas tres aplicaciones tienen un
WRITE_CNT
mayor que 0
, lo cual significa que realizan un forma de escritura durante la medición. De ellas, plasma fue el peor transgresor en un alto grado: realizó la mayoría de operaciones de escritura y por lo tanto el promedio de tiempo entre escrituras fue el más bajo. Por esa razón Plasma sería el mejor candidato para investigar si está interesado en aplicaciones ineficientes de energía.
Utilice los comandos strace y ltrace para examinar aplicaciones de una forma más cercana al rastrear todas las llamadas de sistema del ID de proceso determinado. En este ejemplo, puede ejecutar:
strace -p 2789
strace -p 2789
En este ejemplo, la salida de
strace
contenía un patrón repetitivo cada 45 segundos que abría para escribir el archivo cache del icono de KDE del usuario para escribir y luego lo cerraba inmediatamente. Esto llevaba necesariamente a una escritura física al disco duro cuando los metadatos del archivo (específicamente, el tiempo de modificación) habían cambiado. La corrección final era evitar llamadas innecesarias cuando no se presentaban actualizaciones de iconos.