GNU/Linux >> Tutoriales Linux >  >> Linux

Determinar el procesador particular en el que se ejecuta un proceso

ps puede darte esa información si pides el psr columna (o use el -F bandera que lo incluye).

Ej:

$ ps -F $$
UID        PID  PPID  C    SZ   RSS PSR STIME TTY      STAT   TIME CMD
me        6415  6413  0  5210  2624   2 18:52 pts/0    SN     0:00 -su

O:

$ ps -o pid,psr,comm -p $$
  PID PSR COMMAND
 6415   0 bash

Mi shell se estaba ejecutando en la CPU 2 cuando ejecuté el primer comando, en la CPU 0 cuando ejecuté el segundo. Tenga en cuenta que los procesos pueden cambiar las CPU muy, muy rápidamente, por lo que la información que realmente ve, esencialmente, ya está obsoleta.

Más información en las respuestas de esta pregunta de superusuario:

Linux:¿comando para saber el número de procesador en el que se carga un proceso?


Con el top de procps (generalmente el predeterminado en las distribuciones de Linux hoy en día), en top , presione f , navegue hasta P = Last User CPU (SMP) y presiona Espacio para seleccionar (también puede mover el campo, por ejemplo, antes del COMMAND campo con la Derecha y luego muévase hacia arriba y hacia abajo). q para volver a la pantalla principal (donde verá que su proceso se mueve de un procesador a otro a menos que lo haya configurado explícitamente para quedarse con uno). Puede presionar W para guardarlo como predeterminado.

Presione ? por ayuda.


El comando taskset es lo que buscas:

taskset:recuperar o establecer la afinidad de CPU de un proceso

Ejemplo

$ taskset -p 12345
pid 12345's current affinity mask: f

Una máscara de f significa todos los procesadores, 0x00000001 sería solo el procesador 0.

$ taskset -c -p 24389 
pid 24389's current affinity list: 0-3

Muestra las cpu en formato de lista. Tengo 4 núcleos en mi computadora portátil en este ejemplo.

Ver la página del manual tiene más detalles.


Linux
  1. 4 formas de averiguar un núcleo de CPU que ejecuta un proceso particular en Linux

  2. ¿Qué proceso tiene Pid 0?

  3. ¿Cómo encontrar el ID de proceso (pid) de un programa de terminal en ejecución?

  4. ¿Cómo pasar los argumentos de la línea de comando a un proceso en ejecución en sistemas Unix/Linux?

  5. ¿Determinar en qué grupo(s) se encuentra un proceso en ejecución?

Cómo cambiar la prioridad de un proceso en Linux

Cómo matar el proceso de ejecución de Linux en un puerto particular

Cómo usar el comando which en Linux

¿Existe un comando en Linux para saber el número de procesador en el que se carga un proceso?

Identificar qué MTA se está ejecutando

¿Los archivos .pid son confiables para determinar si un proceso se está ejecutando?