Cómo verificar en qué núcleo de CPU se está ejecutando un proceso en LINUX

Método 1: use el comando superior

El comando superior puede mostrar en qué CPU se está ejecutando el proceso y puede monitorear continuamente si la CPU en la que se está ejecutando el proceso cambia con el tiempo.
Pasos para el uso:

  1. top -p [número de proceso], por ejemplo top -p 3000
  2. Presione la tecla "F", use las teclas arriba y abajo para seleccionar P = Última CPU utilizada y presione la barra espaciadora, aparece "*" para indicar la selección y luego presione "q" para salir.

Método 2: utilice el comando taskset

tasket puede verificar en qué CPU se está ejecutando un proceso (o subproceso) específico, y también puede hacer que un programa se ejecute en una o varias CPU

Opciones de parámetros del conjunto de tareas:
(1) -p, --pid: operar el PID existente, no iniciar una nueva tarea

(2) -c, --cpu-list: especifique una lista numérica de procesadores en lugar de una máscara de bits. Una lista puede contener varios elementos, separados por comas y rangos. Por ejemplo, 0, 5, 7, 9 - 11.

1) Muestra la CPU en la que se ejecuta el proceso: -p parámetro
Ejemplo 1:
[root@localhost ~]# taskset -p 21184
Muestra el resultado:
máscara de afinidad actual de pid 21184: ffffff
Nota: 21184 es el número de proceso. El ffffff que muestra el resultado es en realidad una máscara de bits binaria con 24 bits bajos, todos 1, y cada 1 corresponde a 1 CPU, lo que indica que el proceso se ejecuta en 24 CPU.
Ejemplo 2:
[root@localhost ~]# tasket -p 2030
muestra el resultado:
máscara de afinidad actual de pid2030: f
Nota: significa que sshd cambia aleatoriamente entre 4 CPU.
Ejemplo 3:
[root@localhost ~]# tasket -p 2726
muestra el resultado:
máscara de afinidad actual de pid 2726: 3
Nota: El número decimal 3 que se muestra se convierte a binario, los dos más bajos son 1, cada 1 corresponde a una CPU, Entonces el proceso se ejecuta en 2 cpus.

* Nota: * El número de CPU comienza desde 0, por lo que cpu1 significa la segunda CPU (el número de la primera CPU es 0).

Con respecto
al ID de la CPU de los 8 núcleos en el método de conversión: 7 6 5 4 3 2 1 0
corresponde a los dígitos decimales de 10: 128 64 32 16 8 4 2 1 Los
16 números en hexadecimal son: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
corresponden a cada dígito binario hexadecimal: 0=0000, 1=0001, 2=0010, 3=0011, 4 pid
_
_ Máscara de afinidad actual de 8987: ff ff es hexadecimal, convertida a binaria: 11111111, lo que significa que sshd activa 8 CPU. ¡Así que corresponda a cada valor!
Por ejemplo, 40 en hexadecimal, luego convierta binario 01000000, lo que significa operar en la séptima CPU


2) Especifique el proceso para ejecutar en una CPU específica: tasket -pc 3 21184
muestra el resultado:
lista de afinidad actual de pid 21184: 0-23
nueva lista de afinidad de pid 21184: 3
Nota: 3 significa que la CPU solo se ejecutará el día 4 en la CPU (el conteo comienza desde 0).


参考文章:
[1]: https://www.cnblogs.com/snooker/p/10942566.html
[2]: https://blog.csdn.net/xluren/article/details/43202201
[3]: https ://blog.csdn.net/chuxuan909/article/details/72465748
[4]: ​​https://blog.csdn.net/guotianqing/article/details/80958281

Supongo que te gusta

Origin blog.csdn.net/woshisunyizhen/article/details/114028689
Recomendado
Clasificación