kernel I/O sheduled, programador E/S del kernel, y parametro elevator   Leave a comment

VERSION CORTA:
al final click aqui

Elegir
un modo para el Programador I/O de Linux, si tienen ¡¡¡¡

Hay primeramente tres programadores DE E/S (también
conocido como “políticas de ascensor”),
estos deciden el orden de peticiones para leer y escribir y como
son atendidas por los dispositivos de bloque, no debe ser
confundido con el programador de hilos, que asigna tiempo de CPU
para procesos. Estos se seleccionan en el arranque a través
del parámetro del kernel “elevator”, pero en 2.6
se introduce el nuevo modo noop, veamos que es todo.

Un Programador de E/S es la forma de manejar la lectura de los datos de los dispositivos de bloque, incluyendo la memoria principal, y tambien el área de intercambio¡ El kernel de Linux, el núcleo del sistema operativo, es responsable de controlar el acceso al disco usando planeacion de E/S programada. Ahora puede optimizar el núcleo de E/S durante el arranque, seleccionando uno de los cuatro que diferentes programadores E/S para dar cabida a diferentes patrones de uso:

  • Completely Fair Queuing-elevator=cfq (mas
    recomendado para servidores con gran memoria)

  • Deadline-elevator=deadline (mejor para bajo
    performance y escritorios, bueno en sata)

  • NOOP-elevator=noop (asume un solo bus,
    secuencial y un solo dispositivo)

  • Anticipatory-elevator=as (el por defecto en
    linux, y compilaciones de los que no saben nada, para disp
    viejos)

ADVERTENCIA
¡¡esto no es tan facil, solo estan si el kernel
compilado TIENE lo configurado en el config ¡¡¡esto
son los algoritmos que los desarrolladores y los investigadores
han compartido con la comunidad de código abierto a
mediados de 2004¡

DESCRIPCIÓN DE LOS PROGS 4 E/S

El Completely Fair Queuing (CFQ) mantiene escalabilidad por proceso de E/S y la cola de los intentos de distribuir el ancho de banda en partes iguales entre todas las solicitudes de E/S. CFQ es muy adecuado para sistemas multi-procesador medio a gran rango y para los sistemas que requieren E/S equilibrada en multiples controladores LUNs y E/S. Es como introducir indices de busqueda de rendimiento disco reducido, pero con aplicaciones de acceso a datos en corto periodo de tiempo satisfechos, mientras que el disco se mantiene a ritmo. Al igual que con el anticipatory I/O scheduler, este también toma prestado política de el deadline scheduler. Este es para los sistemas multimedia y casi todos los desarrolladores, generalmente casi todos los usuarios de linux … por supuesto, este tipo de programador requiere un verdadero kernel en tiempo-real, debia se va por estabilidad, pero recomendado para un geento o funtoo con tiempo real.

La Deadline (deadline) elevator utiliza un algoritmo de fin de linea para minimizar la latencia de E/S para una determinada solicitud de E/S, ofrece comportamiento casi de tiempo real y utiliza una política de round robin para tratar de ser justos entre múltiples solicitudes de I / O y evitar proceso de inanicion. Usando cinco colas de E/S este reordena agresivamente las peticiones para optimizar las E/S. Esta por defecto en massenkoh kernels. Este es el mejor para cargas de trabajo donde no hay mucho acceso sequencial o predictibilidad, como los en una base de datos o servidor de archivos (las operaciones se encuentran dentro de los archivos db), bueno para almacenamiento en hardware puede reordenar los accesos, como en cola de comandos que se encuentran con SCSI y dispositivos Serial ATA, y también en accesos simultáneos a múltiples regiones del dispositivo puede ocurrir, por ejemplo con RAID y JBOD.

El planificador NOOP (noop) es un planificador FIFO simple como cola ordenada secuencial y utiliza la mínima cantidad
de CPU/instrucciones por E/S de base para lograr la fusión entre funcionalidades basica y minima de E/S. Asume el rendimiento de la E/S es o sera optimizada en el dispositivo de bloque (memoria o disco) o con en un adaptador de bus inteligente o controlador externo. Estemodo es delicado ya que asume una unica controladora exclusiva scsci para con el dispositivo hardware asociado. Contrariamente muchas infos estupidas, esto solo se utiliza para dispositivos especiales, en hardware de escritorio no hay gran rendimiento.

El ascenso de anticipacion (antycipatory) introduce un retardo controlado antes de atender la E/S para tratar de agregar y/o reordenar las solicitudes, mejorando la locacion y reducción operaciones de búsqueda. El anticipatory I/O scheduler es sustancialmente similar al deadline I/O scheduler y, de hecho, la política de ascensor por
defecto del núcleo normalmente. Esto se debe por el hecho de que después de procesar una secuencia de solicitudes de
lectura, en vez de ir a continuar el servicio de todas las solicitudes de escritura, esperara durante un máximo de 6
ms para las peticiones de lectura adicionales
. Este algoritmo está destinado a optimizar los sistemas con
subsistemas de disco pequeño o lento
. Pero usar este genera mayor latencia de E/S. Se recomienda para sistemas
que no tiene mucho acceso al disco y pueden hacer trabajo en la memoria bruta. Es el de massenkoh y futuros sarisari venenux live cd si se utiliza el parámetro toram.

ENTONCES, QUE OPCIONES SON USADOS EN DISTROS O CONPILATIONS

Para sistemas de grandes cantidades de memoria, recomendado el modo cfq, especialmente si tiene muchos dispositivos con multiples accesos, ejemplo clusteres de datos o una simple maquina con varios discos accediendo al mismo tiempo.

Para entornos multimediadebe usarse kernels de tiempo real, y el modo deadline,pero cuidando la estabilidad.

Para configuraciones servidores, depende, anticipatory es bueno en clusters de base de datos, especialmente si use una gran cache en memoria principal, pero si usa mucho memoria virtual debera usarse cfq. Para aceso de ficheros, se puede intentar un nucleo rt con modo deadline, por ejemplo para subversion o almacenamiento de acceso. Pero cfq es la recomendada para servidores. La implementacion de 200 lineas en el kernel 2.6.38 no es recomendada para servidores.

En el caso de especiales y
esclusividades
, puede usarse el nuevo modo noop,
este requiere el dispositivo tenga todo el bus dedicado a el, y
sea el unico en el.

Debe
leer /usr/src/linux/Documentation/block/as-iosched.txt
para completar información detallada, cudidandosamente
sobre las compilaciones de nucleos, dependiendo de las opciones,
sabores especiales y cambios relacionados, pero como debian o
similares los kernels estan en modos deadline o CFQ.

Posted January 2, 2011 by PICCORO Lenz McKAY in Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: