ver usuario top servidores servicios procesos para monitorear corriendo comandos comando aux activos linux memory process monitoring cpu

linux - usuario - ver procesos en ubuntu



Cómo monitorear un proceso en Linux CPU, memoria y tiempo (2)

Normalmente escribo un guión simple para este tipo de trabajo.

Eche un vistazo a la documentación del kernel para el sistema de archivos proc (Google ''linux proc.txt'').

La primera línea de /proc/stat (Sección 1.8 en proc.txt) le dará estadísticas acumulativas de uso de la CPU (es decir, usuario, agradable, sistema, inactivo, ...). Para cada proceso, el archivo /proc/$PID/stat (Tabla 1-4 en proc.txt) le proporcionará estadísticas de uso de CPU específicas del proceso y estadísticas de uso de la memoria (consulte rss).

Si busca en Google un poco, encontrará mucha información detallada sobre estos archivos y sugerencias sobre bibliotecas / aplicaciones / fragmentos de código que pueden ayudarlo a obtener / obtener los valores que necesita. Con eso en mente, me enfocaré en la estrategia de alto nivel.

Para estadísticas de CPU, use su lenguaje de scripting favorito para crear un ejecutable que tome un conjunto de identificadores de proceso para la supervisión. En un intervalo fijo (por ejemplo, 1 segundo) realice una encuesta / calcule los totales acumulados para cada proceso y el sistema como un todo. Durante cada intervalo de sondeo, escriba todos los resultados en una sola línea para stdout.

Para estadísticas de memoria, escriba una secuencia de comandos similar, pero simplemente registre el uso de la memoria por proceso. La memoria es un poco más fácil ya que obtenemos directamente los valores instantáneos.

Ejecute estas secuencias de comandos mientras dure la prueba, pasando el conjunto de id. De procesos que desea supervisar y redirigiendo su salida a un archivo de registro.

./logcpu $(pidof foo) $(pidof bar) > cpustats ./logmem $(pidof foo) $(pidof bar) > memstats

Importe los contenidos de estos archivos en una hoja de cálculo (para ciertas aplicaciones, esto es tan fácil como copiar / pegar). Para la CPU, busca valores instantáneos, pero tiene valores acumulativos, por lo que deberá hacer un pequeño trabajo de hoja de cálculo para derivar estos valores (es solo delta ''t (x + 1) - t (x)''). Por supuesto, podría hacer que su registrador de CPU escriba el delta, pero pasará un poco más de tiempo por adelantado en el script.

Finalmente, usa tu hoja de cálculo para generar una buena trama.

¿Cómo puedo comparar un proceso en Linux? Necesito algo como "arriba" y "tiempo" juntos para un nombre de proceso en particular (es un programa de multiprocesos, por lo que se darán muchos PID).

Además, me gustaría tener una trama sobre el tiempo de uso de memoria y CPU para estos procesos y no solo para los números finales.

¿Algunas ideas?


Las siguientes son las herramientas para monitorear un sistema Linux

  1. System commands como top, free -m, vmstat, iostat, iotop, sar, netstat, etc. Nada se acerca a esta utilidad de Linux cuando se está depurando un problema. Estos comandos te dan una idea clara de lo que sucede dentro de tu servidor
  2. SeaLion : el agente ejecuta todos los comandos mencionados en el n. ° 1 (también definido por el usuario) y se puede acceder a las salidas de estos comandos en una hermosa interfaz web. Esta herramienta es útil cuando depura en cientos de servidores, ya que la instalación es muy simple. Y es GRATIS
  3. Nagios : es la madre de todas las herramientas de monitoreo / alerta. Es mucho personalización pero muy difícil de configurar para principiantes. Hay juegos de herramientas llamados plugins de nagios que cubren casi todas las métricas importantes de Linux
  4. Munin
  5. Densidad del servidor : un servicio pago basado en la nube que recopila importantes métricas de Linux y les da a los usuarios la capacidad de escribir sus propios complementos.
  6. New Relic: otro servicio de monitoreo alojado bien conocido.
  7. Zabbix