¿Cómo diagnosticar picos de CPU de Ubuntu / espera IO?


19

Estoy usando Ubuntu y cada dos minutos no responde durante medio segundo a un segundo completo, lo que normalmente no es un problema, pero hace que tratar de codificar sea extremadamente frustrante cuando intentas presionar la tecla de retroceso o navegar por el código y no sucede nada. El problema es que las congelaciones son tan breves que la parte superior no tiene tiempo para mostrarme qué está disparando la CPU (suponiendo que algo sea así, pero no sé qué más podría causar esto).

¿Alguien sabe cómo solucionar este problema de rendimiento?

Editar: He intentado iniciar sesión con Gnome Classic (Sin efectos) en lugar de Unity, pero todavía se congela de vez en cuando.

Editar: el gráfico de la CPU no parece mostrar picos reales, por lo que parece que tenía razón y mi diagnóstico original de picos de la CPU como el problema era incorrecto, ahora sospecho que IO espera. No recuerdo que esto haya sucedido durante las breves semanas que tuve Windows 7 Starter ejecutándose en él, lo que me lleva a creer que no es (¿solo?) El hardware ... ¿hay algo que pueda modificar para mejorar esto? Estoy usando un Acer Aspire One D257, con Ubuntu 11.10.

Editar: La salida de dmesgestá en http://paste.ubuntu.com/1060054/ y kern.log está en http://paste.ubuntu.com/1060055/


Esta pregunta es interesante tanto en el caso general como en el suyo particular.
Rafał Cieślak

1
Al activar un gráfico de CPU, puede saber con certeza si se trata de un pico de CPU que está causando la desaceleración. I / O podría ser otro culpable o retraso de la red en algunos casos. ¿Sucede sin importar qué programa esté utilizando activamente en ese momento?
David Oneill

Excelente punto David, lo haré. Solo uso Vim y Firefox en esta máquina, siempre están abiertos y sucede sin importar cuál esté en primer plano. Al principio pensé que era la generación automática de etiquetas desde Vim, pero después de comentar esa sección y borrar todo mi archivo vimrc, el problema aún ocurre. Probaré el gráfico para ver si es realmente un pico de CPU o IO esperar.
Jeff Welling

¿Qué tan insensible se pone? ¿El puntero del mouse deja de actualizarse?
AdamKG

Perdón por la respuesta tardía, creo que también congela el puntero, pero ha dejado de suceder o no lo he notado mucho últimamente. Curiosamente, también he enchufado y montado mi unidad de copia de seguridad USB cifrada últimamente, lo que me hace preguntarme si eso podría estar relacionado. Estoy tratando de hacer algunas pruebas más con y sin la unidad conectada para determinar si A) está relacionado y B) el puntero deja de responder durante estos bloqueos.
Jeff Welling

Respuestas:


12

Hay dos herramientas adicionales que es posible que desee consultar:

Si no obtiene lo que desea de esas dos herramientas, es posible que necesite usar herramientas de desarrollador como OProfile o Sysprof .

Todas las herramientas enumeradas están disponibles en los repositorios de ubuntu

Con respecto a su observación con usb, por lo que he escuchado, algunos controladores usb se comportan un poco flojos con cierto hardware que puede causar tormentas de interrupción, esto podría causar lo que está describiendo. Intente buscar tormenta de interrupción usb y obtendrá bastantes resultados.


Hm, ciertamente buscaré tormentas de interrupción, pero el problema ha seguido ocurriendo incluso después de haber dejado de usar dispositivos usb en este sistema con tanta regularidad. La mayor parte del tiempo estaré programando de camino al trabajo (tránsito) y ahí es cuando lo notaré.
Jeff Welling

5

Utilicé htop durante años y finalmente descubrí cómo obtener Cpu Utilization por números y porcentajes, me sorprende que me haya perdido esto.

htop iowait image

Presione F2

Flecha a "Medidores disponibles"

Resaltar promedio de CPU

F5 o F6 para agregar a la columna

Flecha al elemento "CPU [Bar]"

Presione F4 hasta que aparezca "CPU [Texto]"

También puedes obtener IORates

F2-> Columnas-> Disponible

Añadir IO_RATE, IO_READ_RATE, IO_WRITE_RATE


2

La mejor manera de ver esto es usar una aplicación de línea de comandos como topu htop Instalar htop .

parte superior
parte superior

htop
htop

Sin embargo, deberías estar observándolo durante un tiempo hasta que veas qué causa el aumento (si de hecho es un aumento en el uso de la CPU y no en la espera de E / S, que puede no detectarse en todos los casos).


1
Estoy familiarizado con top pero no htop, ¿htop indica IO wait / cómo interpreto esa parte de su salida? Revisé las preguntas frecuentes en el sitio web de htop pero no mencionó IO wait.
Jeff Welling

@JefWelling: no afaik. Sin embargo, ambos lo mostrarán como uso de CPU.
RolandiXor

Hay un monitor adicional para las actividades de E / S. Se llama iotop (ver la respuesta de danjo133).
FuzzyQ

2

Una herramienta nueva y muy útil es cpustat. Tiene una interfaz gráfica que le permite monitorear múltiples pids a lo largo del tiempo.

ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.