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?

viraptor
fuente

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.

Mei
fuente
14
top -H -p pid 

espero que pueda ayudar

liu bluse
fuente
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.

lexsys
fuente
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.

Sven
fuente
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.


fuente
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
Umut
fuente