Ver Mensaje Individual
  #2  
Viejo 05/04/12, 17:10:59
Array

[xs_avatar]
zadock zadock no está en línea
Equipo de HTCMania
· Votos compra/venta: (5)
 
Fecha de registro: feb 2011
Mensajes: 50,570
Modelo de smartphone: Mi 9T Pro
Tu operador: Movistar
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 un 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 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. (la traducción deja mucho que desear, si alguien la puede hacer mejor que me lo comente por PM).
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 un escaso restardo 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.

6) V(R)

A diferencia de los otros schedulers, las peticiones síncronas y asíncronas no se tratan de forma separada. La siguiente solicitud en ser atendida será la que más cercana esté a la última atendida.
Ventajas
  • Quizás es el mejor para benchmarking porque en el mejor de sus comportamientos el rendimiento es mejor.
Inconvenientes
  • Los resultados de las variaciones de rendimiento pueden ser que esté por debajo del promedio a veces.
  • Menos fiable y más inestable.


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 > VR > BFQ > 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 NSTools o Voltage Control por ejemplo, ambas en el Market.

Última edición por zadock Día 10/04/12 a las 13:34:43.
Responder Con Cita
Los siguientes 158 usuarios han agradecido a zadock su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]