Un ensemble de correctifs a été intégré dans le dépôt qui développe les modifications apportées à Btrfs pour les futures branches du noyau Linux, implémentant une politique de répartition cyclique des opérations de lecture dans RAID1 utilisant l'algorithme « Round-robin ». Pour activer la distribution des opérations de lecture en mode cycle, le paramètre « round-robin:[min_contiguous_read] » doit être défini dans « /sys/fs/btrfs//read_policy », où le paramètre optionnel « min_contiguous_read » détermine la taille minimale des demandes à équilibrer entre les miroirs (par défaut, la valeur est de 256 KiB).
Initialement, la répartition de la charge de RAID1 dans Btrfs était basée sur le PID du processus ayant demandé l'entrée/sortie. Ce système fonctionnait plutôt bien dans les systèmes où la charge est générée par plusieurs processus différents, mais ne permettait pas d'atteindre des performances maximales dans le cas de charges mono-tâches. Par exemple, dans les tests effectués, l'activation de la politique « round-robin » a réduit le temps d'exécution du processus de défragmentation de 18 à 8,8 secondes.
Un changement supplémentaire a été ajouté pour implémenter le paramètre « devid: » dans « /sys/fs/btrfs//read_policy ». Ce paramètre désactive l'équilibrage et prescrit d'effectuer les opérations de lecture uniquement à partir du disque spécifié.
Source : opennet.ru
