viernes, 15 de febrero de 2013

Seteos de semáforos en linux




¿Que son los semáforos?


Los semáforos son mecanismos de comunicación inter-proceso que usa el sistema operativo para regular accesos a regiones criticas de código y recursos.
Al ser mecanismos que provee el kernel de Linux, para tunearlos es necesario modificar parámetros de kernel.


Uso del comando IPCS


Para ver como esta configurado actualmente el sistema y obtener una breve descripción de que es cada seteo podemos ejecutar el siguiente comando

[root@myserver ~]# ipcs -ls

------ Semaphore Limits --------

max number of arrays = 128

max semaphores per array = 250

max semaphores system wide = 32000

max ops per semop call = 32

semaphore max value = 32767

 
Una forma muy útil para visualizar la utilización de los semáforos de un sistema es con el comando ipcs -su


[root@myserver~]# ipcs -su

------ Semaphore Status --------
used arrays = 50
allocated semaphores = 2570

Con esto obtenemos cuantos arrays y semáforos se están utilizando


Configuración


Los parámetros de kernel se configuran con el comando sysctl

[root@myserver~]# sysctl -a |grep sem

kernel.sem = 250 32000 32 128
 
Para ampliar o modificar los seteos actuales tenemos que editar el archivo de configuración /etc/sysctl.conf y establecer la siguiente linea (o reemplazar la existente)

kernel.sem = 250 256000 32 1024

Para que el sistema haga efectivo el cambio debemos correr

sysctl -p