Obtener estadísticas de una CPU por hilo


17

Estoy interesado en el uso actual de cpu, precisamente cpu% y wait%, para cada hilo en una aplicación específica. ¿Es posible obtener esa información de alguna parte?

Sé que toppuede dividir la información por hilo real (unos con pid), pero no muestra la división del uso de la CPU del sistema / usuario / espera para cada uno de ellos. También me gustaría alguna forma de registrar esa información. ¿Conoces alguna aplicación (o apis) que pueda hacer eso?

Respuestas:


4

Buscaría en SystemTap . Esta herramienta ciertamente te dará lo que quieres. Existe este ejemplo de hilos de perfilado; no sé si tiene todo lo que quieres, pero puedes modificarlo para que lo tenga.



11

Porcentaje de uso de CPU por hilo que puede obtener con el pscomando:

 ps -emo %cpu,pid,user,args

La forma en que se calcula se describe en ps manpage:

Actualmente, es el tiempo de CPU utilizado dividido por el tiempo que el proceso ha estado ejecutándose (relación cputime / tiempo real), expresado como un porcentaje.


Estoy realmente interesado tanto en el tiempo de la CPU como en el tiempo de espera de io. ps no puede manejar el segundo por desgracia.
viraptor

Nota personal: reemplace -e por -C java y pid por spid para hilos Ids en la aplicación java
kellogs

2
Nota importante para uno mismo: ps -To pcpu,tid -C java | sort -r -k1 | morepara hilos de cerdo en una aplicación de Java. ps --sort=pcpuno logra nada; mejor confiar en shell para la parte de clasificación.
Kellogs

Muy útil @kellogs, gracias. Agregaría -no ordenaría -g, de modo que "10" aparezca arriba de "2", por ejemplo.
EM0

0

Quizás eche un vistazo a htop, puede configurar bastante con él.


Por desgracia, no se puede dividir la CPU en el sistema del usuario el tiempo / / espera para un hilo específico - sólo para toda la máquina
viraptor

Sí, pero ¿cómo voy a hacer eso?
rmobis

0

¿Intentaste sar? Puede obtener mucha información incluso en el nivel pid.



0

Me topé con esto en un sistema embebido donde no tenemos las herramientas sofisticadas para analizar estas cosas.

Para esto, he usado cpuacct cgroupy colocado cada hilo en su propia carpeta. De esta manera pude medir su uso.

La jerarquía se veía así:

my-app.service
|-tid1
|-tid2
|-tid3

Luego lo cambié a

my-app.service
|-dir1
|  -tid1
|-dir2
|  -tid2
|-dir3
|  -tid3
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.