miércoles, 23 de septiembre de 2009

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



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

No hay comentarios:

Publicar un comentario