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.