Simulación concurrente y elección dinámica de estrategias para la mejora de la entrada/salida de disco

  1. Gonzalez Ferez, Maria Pilar
Dirigida por:
  1. Juan Piernas Cánovas Director
  2. Antonio Cortés Roselló Director/a

Universidad de defensa: Universidad de Murcia

Fecha de defensa: 14 de junio de 2012

Tribunal:
  1. Félix García Carballeira Presidente/a
  2. Antonio Flores Gil Secretario
  3. María de los Santos Pérez Hernández Vocal
  4. André Brinkmann Vocal
  5. Angelos Bilas Vocal
Departamento:
  1. Ingeniería y Tecnología de Computadores

Tipo: Tesis

Teseo: 114648 DIALNET

Resumen

A lo largo de los años, se han realizado avances muy importantes en la tecnología de los discos, y se han hecho amplias mejoras en los dispositivos de disco. Sin embargo, el rendimiento de la memoria y la CPU ha mejorado a una mayor velocidad. Como consecuencia, el rendimiento del sistema de disco domina, normalmente, el redimiendo global de todo un sistema, y limita el rudimento que muchas aplicaciones (especialmente, las aplicaciones que usan muchos datos) pueden alcanzar. En esta tesis, hemos centrado nuestra atención en mejorar el rendimiento de la entrada/salida (E/S), con la motivación de que un mejor rendimiento de E/S normalmente mejorará el rendimiento global del sistema. La tres principales contribuciones hechas para alcanzar este objetivo son las siguientes. Nuestra primera propuesta es un "proyecto de caché de disco mejorada mediante RAM" (REDCAP, RAM Enhanced Disk Cache Project), que agranda la caché de un dispositivo de disco usando parte de la memoria principal. Para conseguir tal fin, añadimos una nuevo nivel a la jerarquía de caché, entre la caché de páginas y la caché de disco. Además, introducimos una técnica de prefetching que se beneficia del mecanismo de lectura anticipada realizado por los discos modernos, y se aprovecha de las peticiones de lectura lanzadas por las aplicaciones. Completamos esta primera propuesta con un mecanismo para controlar el rendimiento alcanzado por la nueva caché. Gracias a REDCAP, somos capaces de reducir el tiempo de E/S de lectura en más de un 80% en cargas de trabajo con localidad espacial, sin degradar el redimiendo para otras cargas de trabajo. Como una manera de conseguir un subsistema de E/S que se auto--monitorice y auto-adapte, nuestra segunda propuesta es un "simulador de disco dentro del núcleo" que es capaz de simular tanto discos duros como discos de estado sólido. Nuestro simulador de disco modela el disco usando una tabla dinámica de tiempos de E/S; también simula una caché de disco interna. El simulador controla la llegada de las peticiones y las dependencias entre peticiones, y tiene en cuenta los tiempos de pensar entre peticiones. Nuestro simulador de disco tiene un planificador de E/S que establece el orden en el que las peticiones se enviarán a disco. Esta propuesta nos permite comparar, en tiempo real, el comportamiento de varios mecanismos de E/S y, dinámicamente, activarlos/desactivarlos dependiendo del rendimiento esperado. De hecho, nuestro simulador ha sido usado de forma satisfactoria en REDCAP para controlar su rendimiento y en nuestra tercera contribución para implementar un sistema de planificación dinámico. También abre la puerta a nuevas mecanismos de E/S auto--monitorizables y auto--adaptables. Nuestra última propuesta es un "marco de planificación de disco automático y dinámico" (DADS, Dynamic and Automatic Disk Scheduling framework). Este mecanismo selecciona el planificador de E/S que proporciona, para la carga de trabajo actual, el mayor rendimiento. DADS compara dos de los planificadores de E/S de Linux ejecutando, de forma simultánea, una instancia de nuestro simulador de disco para cada planificador. Entonces elige, en cualquier momento, el planificador de E/S que proporciona el menor tiempo de servicio para la misma cantidad de datos solicitados. Usando DADS, el rendimiento alcanzado está siempre cercano al obtenido por el mejor planificador; también los administradores de sistemas están exentos de elegir un planificador de E/S que no sea óptimo y que proporcione un buen comportamiento para algunas cargas de trabajo, pero que degrade el rendimiento del sistema cuando la carga de trabajo cambia.