6.15 EL API DE OPENMOSIX

El API de openMosix es la manera mediante la cual los programadores pueden controlar el comportamiento de un cluster. Sirve como herramienta de diagnóstico para monitorizar los aspectos más íntimos del procedimiento que se lleva a cabo en el seno del nodo y, por extensión, del cluster. De esta interfaz se obtienen los datos para mosmon por ejemplo, para monitorizar la carga -load- o las relaciones de memoria libre y ocupada.

No hará falta ser un experto para poder comprender esta interfaz, puesto que es de una simplicidad sorprendente: lo justo para poder saber en cualquier momento, cualquier aspecto relativo a la algorítmica que controla el cluster: migración, balenceo, etc.

De esta manera se aconseja al lector ver como se opera en este directorio para buscar las razones de migración, por ejemplo, o qué procesos no locales se están ejecutando en su nodo -aspectos que hasta ahora habían permanecido ocultos al ser invisivbles al comando ps-. Se pueden llegar a solucionar problemas o simplemente comprender mejor a openMosix.



En este apartado se describirá el API de openMosix, al que se puede acceder como a un conjunto de ficheros6.6 y escribir o leer de ellos dependiendo de su utilización. Todos los ficheros se encuentran en /proc/hpc/. Dentro de este directorio se encuentran los siguientes subdirectorios:


Tabla: El API de openMosix: /proc/hpc/remote/
Fichero W/R Función Valor de activación
block W bloqueo para la llegada de procesos 1
bring W devuelve los procesos migrados 1
config R/W configuración del sistema -
decayinterval W/R intervalo de control estadístico -
dfsalinks W activación de rutas DFSA ruta
expel W expele procesos ajenos, activa block 1
fastdecay W tasa de decaída estadística rápida defecto: 926
gateway R número de gateways en red defecto: 0
lstay W/R no migrarán procesos locales 1
mfscosts W/R costes de MFS ?
mfskill W esconde árboles complejos a MFS ruta
mospe R/W identificador de nodo (nodo ID) /etc/openmosixmap
nomfs R/W deshabilita la opción de MFS 1
overhead R/W sobrecargas sobre nodos y red -
quiet R/W el nodo deja de diseminar información a otros 1
slowdecay R/W procesos con tasa de caída lenta defecto: 976
speed R/W velocidad del nodo valor
sspeed R/W velocidad estandar, par areferencia 10000
stay R/W los procesos no migrarán 1
version R versión de openMosix funcionando variable



Tabla: El API de openMosix: /proc/hpc/admin/
Fichero W/R Función Valor de activación
clear W resetea valor estadísticos del nodo 1
cpujob W advierte que el proceso es cpu-intensivo 1
exec W protege de execve la política de decay 1
execonce W como el anterior, pero solo para el primer execve 1
fast W estadísticas de decaimiento rápidas 1
inherit W heredadas de un proceso a sus hijos 1
iojob W proceso io-intensivo 1
own R factor de decay que utilizaría el proceso -
slow W estadísticas de decaimiento lentas 1



Tabla: El API de openMosix: /proc/hpc/decay/
Fichero W/R Función Valor de activación
load R carga del nodo variable
mem R memoria utilizada por el sistema variable
rmem R memoria del sistema en bruto variable
speed R velocidad del nodo o procesador del nodo variable
status R estado del nodo variable
tmem R memoria total del sistema -utilizada y sin utilizar- variable
util R factor de unificación del sistema variable
cpus R número de procesadores del sistema variable



Tabla: El API de openMosix: /proc/hpc/info/
Fichero W/R Función Valor de activación
from R nodo de procedencia nodo ID
goto W obligación de migrar hacia ese nodo nodo ID
statm R estadísticas de memoria -
stats R estadísticas de procesador -




En los cuadros se ha hablado de estadísticas referentes tanto a memoria com a procesador. Éstas contienen la siguiente información:



ESTAD´iSTICAS DE MEMORIA

ESTAD´iSTICAS DE PROCESADOR





Por otro lado existe en /proc/PID/ una estructura ampliada relativa a la información para cada proceso. Entre esta información -propia de linux- ahora podrán encontrarse aspectos relacionados con openMosix, como muestra el cuadro [*] .


Tabla: El API de openMosix: /proc/PID/
Fichero Función
cantmove motivo por el que no ha migrado el proceso
goto nodo al que se desea migrar el proceso
lock bloqueo del proceso en este nodo
migrate obliga al proceso a migrar
nmigs número de veces totales que el proceso ha migrado
sigmig el solicita una señal tras migrar
where nodo destino



miKeL a.k.a.mc2 2004-09-06