Afinidad de los procesos
Cambiar la afinidad (el cpu donde corre) un proceso, es algo que en algún momento podríamos necesitar. Como ya me ha pasado de necesitarlo aca va como hacerlo.
En GNU/Linux tenemos el comando taskset (se encuentra el paquete schedutils) por lo que si no lo tenemos los debemos instalar primero
Debian/Ubuntu)
# apt-get install schedutils
RHEL/Fedora)
# yum install schedutils
Una vez instalado basicamente debemos buscar el PID (process ID) al cual le queremos cambiar la afinidad, el comando ps auxf es el candidato para ello, y una vez obtenido podremos ver la afinidad y si queremos luego cambiarla de la siguiente forma:
En mi caso tengo un procedor dual core, y el proceso elegido para cambiar la afinidad es el demonio sshd que por default corre en ambos procesadores
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Busco el pid: _pepo@luca:~$ ps ax |grep sshd|grep -v grep 5459 ? Ss 0:00 /usr/sbin/sshd_ Verifico la afinidad: _pepo@luca:~$ taskset -pc 5459 pid 5459's current affinity list: 0,1_ Cambio la afinidad: _pepo@luca:~$ sudo taskset -pc 0 5459 pid 5459's current affinity list: 0,1 pid 5459's new affinity list: 0_ |
Y con esto ya el demonio sshd só:lo corre en el core 0 :D
Author Javier Viola
LastMod 2009-09-23