Ver Mensaje Individual
  #511  
Viejo 05/04/12, 22:20:39
Array

[xs_avatar]
jcgpsevi jcgpsevi no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: jul 2008
Localización: En mi casa
Mensajes: 2,154
Modelo de smartphone: Nexus 5x
Tu operador: Vodafone
 Cita: Originalmente Escrito por Lordstenka Ver Mensaje
I/O SCHEDULERS (I/O = Imput/Output)

P. “¿Para qué sirve un I/O Scheduler?”
R. Reducir al mínimo la latencia de búsqueda del disco duro.Dar prioridad a las operaciones de I/O de algunos procesos.Asignar más espacio en disco para los procesos en ejecución.Garantizar que ciertas peticiones se ejecutan antes de un tiempo límite.Para entenderlo de una forma más simple: el kernel controla los accesos al disco usando I/O Scheduler (Scheduler = planificador).


P. “¿Qué metas persigue cada I/O scheduler para tratar de conseguir un equilibrio?”
R. Equidad (que cada proceso tenga su parte asignada de acceso al disco).Rendimiento (tratar de atender las solicitudes que se encuentren en primer lugar, haciendo la búsqueda más rádida).Tiempo real (garantizar que las solicitudes son atendidas en un tiempo dado).

1) Noop

Gestiona todas las peticiones siguiendo el método FIFO (First In First Out), o dicho de otra forma, las primeras en llegar son las primeras en salir/ser atentidas. Lo mejor es utilizarlo con dispositivos de almacenamiento que no dependen de movimiento mecánico para acceder a los datos (si, como nuestras tarjetas flash). La ventaja aquí es que las unidades flash no requieren un reordenamiento de las múltiples peticiones I/O, a diferencia de los discos duros normales.

Ventajas

Sirve las peticiones I/O con un menor número de ciclos de la CPU (¿mejora de la batería?).Es el mejor para unidades flash.Buen rendimiento en los sistemas db.

Inconvenientes

La reducción en el número de ciclos de la CPU es proporcional a la pérdida de rendimiento.

2) Deadline

El objetivo es minimizar la latencia de I/O o la necesidad de una petición. Esto se logra medianta una política de “todos contra todos”, para ser justos entre múltiples peticiones de I/O. Se utilizan 5 colas de espera de forma agresiva para reordenar las solicitudes entrantes.

Ventajas

Se acerca bastante a un planificador a tiempo real.Excelente en la reducción de latencia de peticiones I/O.El mejor planificador para el acceso a bases de datos y consultas.El requerimiento de “ancho de banda” de un proceso (el porcentaje de CPU que necesita) se puede calcular fácilmente.Al igual que Noop, es un buen planificador para memorias flash.

Inconvenientes

Cuando el sistema está sobrecargado, la elección de procesos se puede volver impredecible.

3) CFQ

Completely Fair Queuing (o dicho de manera cutre “cola completamente equitativa”) mantiene una cola de procesos estable, repartiendo el porcentaje necesitado de la CPU en partes iguales entre todas las peticiones I/O. El intervalo de tiempo asignado a cada cola depende de la prioridad del proceso primario.

Ventajas

Considerado el mejor ofreciendo un equilibrado rendimiento I/O.El más fácil de configurar.Excelente en sistemas multiprocesador.El mejor rendimiento del sistema en bases de datos, después de Deadline.

Inconvenientes

Algunos usuarios reportan que el escáner de medios tarda bastante en completarse usando CFQ. Esto podría deberse a que la distribución del uso de la CPU se reparte equitativamente entre todas las operaciones I/O durante el arranque y no se conceden prioridades.Jitter (el peor caso de retardo) puede llegar a ser alto debido a la cantidad de tareas que necesitan acceso al disco.

4) BFQ

En lugar de asignar intervalo de tiempo como CFQ, BFQ asigna como unos “presupuestos” estimativos. Garantiza el disco para el proceso activo hasta que el presupuesto expira. El presupuesto asignado a un proceso varía con el tiempo como una función de su comportamiento.

Ventajas

Se cree que es muy bueno para la tasa de transferencia de datos vía USB.Se cree que es el mejor scheduler para la grabación de videos de HD y video streaming (por el menor “jitter” en comparación con CFQ y los otros).Es considerado un scheduler I/O muy preciso.Alcanza alrededor de un 30% más de rendimiento que CFQ.

Inconvenientes

No es el mejor scheduler para hacer benchmarking.El mayor “presupuesto” asignado a un proceso puede afectar a la experiencia de usuario y aumentar la latencia (retardos).

5) SIO

Es un scheduler I/O simple cuyo objetivo es mantener unos consumos mínimos y lograr una baja latencia al atender solicitudes. Sio es una mezcla entre Noop y Deadline. No existe un reordenamiento de las peticiones.

Ventajas

Simple, muy seguro.Minimiza la necesidad de atención de las solicitudes.

Inconvenientes

Velocidades lentas de lectura en memorias flash, en comparación con los otros schedulers.La velocidad de las lecturas secuenciales en memorias flash tampoco es buena.


PREGUNTAS

P. “¿Cuál es el mejor I/O Scheduler?

R. No hay ninguno mejor que otro. Depende del uso que le des y las aplicaciones y tareas que tengas en ejecución, usa diferentes schedulers. Es lo mejor que te puedo decir. Sin embargo, considerando un rendimiento general, batería, fiabilidad y menos retardo, se piensa que SIO > Noop > Deadline > CFQ, considerando que todos los schedulers son modificables y el almacenamiento usado es una memoria flash.


P. “¿Cómo puedo cambiar los I/O Schedulers?”

R. Con aplicaciones como No-frills CPU.


Enviado desde mi Galaxy Nexus
A mi solo me sale Noop y Deadline como opciones con el Kernel Lean 3.0, ¿como pongo el SIO?
Responder Con Cita