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:
- admin: variables que controlan la administración del nodo. Ver
cuadro .
- decay: control de estadísticas. Ver cuadro .
- info: información de variables relativas al nodo. Ver cuadro
.
- nodes: información del estado y carga de cada uno de los nodos
del cluster. Las variables son las mismas que para el nodo local, en info.
- remote: ruta que sirve para migrar procesos hacia otros
nodos. Ver cuadro .
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
- tamaño total
- tamaño residente
- memoria compartida
- páginas de texto
- páginas de librerías
- páginas de datos
- páginas sucias
ESTAD´iSTICAS DE PROCESADOR
- tiempo de usuario en el nodo
- tiempo de los descendientes, no se muestra
- nice -prioridad UNIX- del proceso
- vsize, tamaño virtual
- rss, número de páginas residentes
- nswap, número de páginas en swap
- cnswap, páginas en swap de los descendientes
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