Se ha incluido en el repositorio que desarrolla cambios en Btrfs para las futuras ramas del núcleo de Linux un conjunto de parches que implementan una política de balanceo cíclico de operaciones de lectura en RAID1, utilizando el algoritmo "Round-robin". Para habilitar la distribución de operaciones de lectura en un ciclo circular, se debe establecer el valor "round-robin:[min_contiguous_read]" en "\/sys\/fs\/btrfs\/<uuid>\/read_policy", donde el parámetro opcional "min_contiguous_read" define el tamaño mínimo de las solicitudes que serán balanceadas entre los espejos (por defecto, el valor es 256 KiB).
Inicialmente, el balanceo de carga en RAID1 en Btrfs se realizaba en función del PID del proceso que solicitaba la entrada/salida. Este esquema funcionaba bien en sistemas donde la carga era generada por múltiples procesos diferentes, pero en cargas de un solo proceso no permitía alcanzar el máximo rendimiento. Por ejemplo, en las pruebas realizadas, habilitar la política "round-robin" redujo el tiempo de ejecución del proceso de desfragmentación de 18 a 8.8 segundos.
Se ha añadido un cambio que implementa el parámetro "devid:<devid>" en "\/sys\/fs\/btrfs\/\/read_policy". Este parámetro desactiva el balanceo y ordena realizar operaciones de lectura solamente desde el disco especificado.
Fuente: opennet.ru
