La programación anticipada es un algoritmo para programar la entrada / salida del disco duro ( programación de E / S ). Busca aumentar la eficiencia de la utilización del disco "anticipándose" a futuras operaciones de lectura sincrónica .
Programación de E / S
La "inactividad engañosa" es una situación en la que un proceso parece haber terminado de leerse en el disco cuando en realidad está procesando datos en preparación para la siguiente operación de lectura. Esto hará que un programador normal de E / S que conserve el trabajo cambie al servicio de E / S desde un proceso no relacionado. Esta situación es perjudicial para el rendimiento de las lecturas sincrónicas, ya que degenera en una carga de trabajo de búsqueda. [1] La programación anticipada supera la inactividad engañosa al hacer una pausa breve (unos pocos milisegundos) después de una operación de lectura en previsión de otras solicitudes de lectura cercanas. [2]
La programación anticipada produce mejoras significativas en la utilización del disco para algunas cargas de trabajo. [3] En algunas situaciones, el servidor web Apache puede lograr hasta un 71% más de rendimiento mediante el uso de la programación anticipada. [4]
El programador anticipatorio de Linux puede reducir el rendimiento de los discos que utilizan Tagged Command Queueing (TCQ), discos de alto rendimiento y matrices RAID de hardware . [5] Un programador anticipatorio (AS) fue el programador predeterminado del kernel de Linux entre 2.6.0 y 2.6.18, momento en el que fue reemplazado por el programador CFQ .
A partir de la versión 2.6.33 del kernel, el programador anticipatorio se ha eliminado del kernel de Linux. [6] La razón es que, si bien es útil, los efectos del programador se pueden lograr mediante el uso ajustado de otros programadores (principalmente CFQ, que también se puede configurar para inactivo con el ajuste slice_idle ). [7] Dado que el programador anticipatorio agregó una sobrecarga de mantenimiento sin mejorar la cobertura de la carga de trabajo del kernel de Linux, se consideró redundante.
Ver también
Referencias
- ^ Iyer, Sitaram. "El efecto de la inactividad engañosa en los programadores de disco" . Consultado el 20 de abril de 2010 . Cite journal requiere
|journal=
( ayuda ) - ^ Morton, Andrew (23 de enero de 2003). "2,5,59-mm5" . linux-kernel, linux-mm (lista de correo). Archivado desde el original el 15 de junio de 2007 . Consultado el 23 de mayo de 2007 .
- ^ Morton, Andrew (20 de febrero de 2003). "Evaluación comparativa del programador IO" . linux-kernel (lista de correo). Archivado desde el original el 2 de junio de 2007 . Consultado el 23 de mayo de 2007 .
- ^ Iyer, Sitaram; Druschel, Peter (6 de junio de 2001). "Programación anticipatoria: un marco de programación de disco para superar la inactividad engañosa en E / S sincrónica" . 18º Simposio de ACM sobre principios de sistemas operativos . Consultado el 20 de abril de 2010 .
- ^ Piggin, Nick (13 de septiembre de 2003). "as-iosched.txt" . Documentación del kernel de Linux . Consultado el 20 de abril de 2010 .
- ^ "Linux 2 6 33 - principiantes del kernel de Linux" .
- ^ "Documentación del kernel de CFQ" .