Al ejecutar top, htop, uptime, etc., podemos ver el promedio de carga como tres valores que indican la carga promedio de los últimos 1/5/15 minutos ( bueno, no realmente , pero esa no es la pregunta aquí).
A veces noto que tengo un promedio de carga bastante alto durante los últimos 15 minutos, pero la carga actual es muy baja. ¿Existe una utilidad / programa que pueda enumerar los procesos (incluso si ya no existen) que consumieron la mayor cantidad de tiempo de CPU durante los últimos 1/5/15 minutos (o algún otro período similar)?
Soy consciente de que el promedio de carga también puede ser causado por procesos que esperan E / S, pero estoy principalmente interesado en ver la mayoría de las aplicaciones que requieren mucha CPU (aunque también sería bueno poder ver E / S históricas).
Hasta donde sé, ejecutar htop y ordenar por tiempo no puede ayudarme aquí, ya que si la computadora ha estado encendida por un tiempo, los valores superiores no necesariamente tendrán nada que ver con el pasado reciente.
Respuestas:
Sugiero usar
atop
. Es un demonio que reúne toda la información 'superior' cada 10 minutos de forma predeterminada y puede retroceder en el tiempo viendo estas instantáneas 'principales'. Ajuste la configuración de intervalo predeterminada a sus necesidades (consume más espacio en disco si se configura con más frecuencia).Ayer mismo, respondí una pregunta similar , en la que incluí un tutorial muy breve.
fuente
atop
información puede ayudar a adivinar cómo se componen (resumen) los valores de carga. en otras palabras, ¿qué hace ese algoritmo (dehtop
) para componer el promedio de carga y por qué no se muestra por proceso? (Creo que esto puede merecer un nuevo hilo?)A juzgar por la indicación de htop, supongo que estás ejecutando Linux.
Puede echar un vistazo a una utilidad llamada sar , que se usa con frecuencia en Solaris, pero rara vez la he visto en Linux. Es capaz de registrar la actividad del sistema durante un día y luego informarlo a varios intervalos. También puede mirar Orca, pero las estadísticas de datos todavía son por sistema.
Si necesita datos por proceso, obviamente hay productos pagados como TeamQuest .
fuente
A menos que configure una herramienta de recopilación de datos, la respuesta es no, no existe dicha utilidad incorporada, que registrará la utilización de diferentes recursos.
Por otro lado, cada instalación de Linux viene con la utilidad sar, que aborda el tema del que está hablando. No voy a entrar en detalles sobre cómo recopilar datos y cómo extraer estos datos para la presentación de informes, ya que las necesidades de cada servidor y cada organización son diferentes.
Inicie sesión en su servidor y comience a leer la página de
sar
comando man . Luego haga una búsqueda en Google sobre cómo usar sar de manera efectiva. Y en poco tiempo podrá configurar su utilidad de recopilación de datos. Cuando encuentre un problema, simplemente vuelva a buscar en los registros sar durante el período de tiempo especificado y encuentre qué recurso se utilizó más de lo habitual, etc.Es una herramienta invaluable para convencer a la gerencia de que invierta algo de dinero para comprar / actualizar hardware, si está continuamente registrando una utilización del 75% o más y no hay otra forma de demostrárselo. Incluso hay macros de Excel para hacer informes gráficos (leer como Management-speak) a partir de datos sar sin procesar si no me equivoco.
fuente