Estoy ejecutando algunas pruebas JMeter en un proceso de Java para determinar qué tan sensible es la carga de una aplicación web (más de 500 usuarios). JMeter dará el tiempo de respuesta para cada solicitud web, y he escrito una secuencia de comandos para hacer ping al Tomcat Manager cada X segundos, lo que me proporcionará el tamaño actual del montón de JVM.¿Obtener uso de CPU en script de shell?
Me gustaría recopilar estadísticas en el servidor del% de CPU que utiliza Tomcat. Traté de hacerlo de una secuencia de comandos shell usando ps
así:
PS_RESULTS=`ps -o pcpu,pmem,nlwp -p $PID`
... ejecutar el comando cada X segundos y anexar los resultados en un archivo de texto. (Para cualquiera que se pregunte, pmem
=% Uso de memoria y nlwp
es el número de hilos)
Sin embargo he encontrado que esto da una definición diferente de "% de utilización de la CPU" lo que me gustaría - de acuerdo a las páginas de manual ps, pcpu
se define como:
utilización de la CPU del proceso en formato "##. #". Es el tiempo de CPU utilizado dividido por el tiempo que el proceso se ha estado ejecutando (relación cputime/en tiempo real), expresado como un porcentaje.
En otras palabras, pcpu
me da la utilización de la CPU% para el proceso de la vida del proceso.
Ya que quiero tomar una muestra cada X segundos, me gustaría ser la recogida de la utilización de la CPU del proceso en el momento actual sólo - similar a lo que me daría top
(utilización de la CPU del proceso ya que el última actualización).
¿Cómo puedo recopilar esto desde un script de shell?
Gracias por la herramienta dstat! –