Capítulo 4. Administración de recursos
El Completely Fair Scheduler (CFS) en el kernel de Linux es un programador compartido proporcional que divide proporcionalmente el tiempo de la CPU entre grupos de tareas dependiendo de la prioridad/peso de las tareas o partes asignadas a un grupo de tareas. En CFS, un grupo de tareas puede obtener más CPU de la que necesita si hay suficientes ciclos ociosos de CPU disponibles en el sistema, debido a la naturaleza conservadora del programador.
- Pago por uso
- En sistemas corporativos que abastecen a varios clientes, el proveedor del servicio cloud necesita asignar una cantidad fija de tiempo de CPU a los huéspedes virtuales basado en el nivel de servicios.
- Garantía del nivel de servicio
- Los clientes demandan un porcentaje de los recursos de la CPU sin interrupciones del servicio para cada huésped virtual.
Red Hat Enterprise Linux 6 activa cgroups directamente, y libvirt crea un cgroups por cada modelo de huésped. En sistemas SMP grandes, un incremento en el número de cgroups empeora el rendimiento. Sin embargo, en Red Hat Enterprise Linux 6.2, la escalabilidad de CPU de cgroups ha sido mejorada significativamente, haciendo posible la creación y ejecución de cientos de cgroups simultáneamente sin repercusiones en el rendimiento.
/proc
, dd sysctl_sched_shares_window
, ha sido añadido con un valor predeterminado de 10 ms.
El diseño del controlador de E/S de cgroups ha sido mejorado para reducir el uso de cerrojos dentro del controlador de E/S, dando como resultado un mejor rendimiento. Así mismo, el controlador de E/S ahora soporta estadísticas por cgroup.
Red Hat Enterprise Linux 6.2 introduce mejoras en el costo del uso de memoria en el controlador de memoria al reducir en un 37% el costo de asignación para cada arreglo page_cgroup
. Además, el puntero page_cgroup-to-page
ha sido removido, mejorando el rendimiento del controlador de memoria.
El valor de la variable group_isolation
de CFQ ha sido cambiado de 0
a 1
(/sys/block/<device>/queue/iosched/group_isoaltion
). Después de varias pruebas y numerosos reportes de usuarios, se encontró que el valor predeterminado 1
es más útil. Cuando se establece a 0
, todas las colas de E/S aleatorias forman parte del root cgroup y no del cgroup del cual las aplicaciones forman parte. Consecuentemente, esto conlleva a que no haya una diferenciación del servicio para las aplicaciones.
Nota