La limitation basée sur le poids blk-iocost améliore le contrôle des E/S disque du sous-système cgroup (blkcg) dans Alibaba Cloud Linux. Elle répartit la bande passante d'E/S des périphériques blocs selon la priorité des applications ou des processus. Configurez les valeurs de poids pour limiter la bande passante d'E/S par application ou par processus.
Le noyau Alibaba Cloud Linux prend en charge les interfaces cgroup v1 et v2 pour blk-iocost, mais une seule est active à la fois. Exécutez stat -fc %T /sys/fs/cgroup pour vérifier la version active.
La valeur de retour
tmpfsindique l'interface cgroup v1.La valeur de retour
cgroup2fsindique l'interface cgroup v2.
Systèmes d'exploitation pris en charge
Alibaba Cloud Linux 2 avec une version de noyau
4.19.81-17ou ultérieureAlibaba Cloud Linux 3
Utiliser l'interface cost.qos
L'interface cost.qos active ou désactive blk-iocost et limite la qualité de service (QoS) des E/S en fonction de la latence et du poids. Elle n'existe que dans le groupe blkcg racine et son nom varie selon les versions de cgroup.
cgroup v1 :
blkio.cost.qoscgroup v2 :
io.cost.qos
Configuration
Chaque ligne commence par le numéro de périphérique au format MAJ:MIN (exécutez lsblk | grep <Cloud_Disk_Name> pour l'obtenir), suivi des paramètres suivants :
|
Paramètre |
Description |
|
enable |
Active ou désactive blk-iocost.
|
|
ctrl |
Mode de contrôle.
|
Activer la fonctionnalité blk-iocost
Cet exemple active blk-iocost pour le périphérique 254:48 en mode user. Le disque est considéré comme saturé lorsque 95 % des latences de lecture et d'écriture (rlat et wlat) dépassent 5000 μs (5 ms). Le noyau ajuste alors le taux de distribution entre 50 % et 150 %.
-
Interface cgroup v1
sudo sh -c 'echo "254:48 enable=1 ctrl=user rpct=95.00 rlat=5000 wpct=95.00 wlat=5000 min=50.00 max=150.00" > /sys/fs/cgroup/blkio/blkio.cost.qos' -
Interface cgroup v2
sudo sh -c 'echo "254:48 enable=1 ctrl=user rpct=95.00 rlat=5000 wpct=95.00 wlat=5000 min=50.00 max=150.00" > /sys/fs/cgroup/io.cost.qos'
Utiliser l'interface cost.model
L'interface cost.model configure le modèle de coût des E/S. Elle n'existe que dans le groupe blkcg racine et son nom varie selon les versions de cgroup.
cgroup v1 :
blkio.cost.modelcgroup v2 :
io.cost.model
Configuration
Chaque ligne commence par le numéro de périphérique au format MAJ:MIN (exécutez lsblk | grep <Cloud_Disk_Name> pour l'obtenir), suivi des paramètres suivants :
|
Paramètre |
Description |
|
ctrl |
Mode de contrôle.
|
|
model |
Seul le modèle
|
Définir un modèle de coût
Cet exemple définit un modèle de coût linear pour le périphérique 254:48 avec des paramètres personnalisés.
-
Interface cgroup v1
sudo sh -c 'echo "254:48 ctrl=user model=linear rbps=2706339840 rseqiops=89698 rrandiops=110036 wbps=1063126016 wseqiops=135560 wrandiops=130734" > /sys/fs/cgroup/blkio/blkio.cost.model' -
Interface cgroup v2
sudo sh -c 'echo "254:48 ctrl=user model=linear rbps=2706339840 rseqiops=89698 rrandiops=110036 wbps=1063126016 wseqiops=135560 wrandiops=130734" > /sys/fs/cgroup/io.cost.model'
Utiliser l'interface weight/cost.weight
Cette interface contrôle l'allocation des ressources d'E/S via une valeur weight comprise entre 1 et 10000. Son nom varie selon la version de cgroup et le système d'exploitation. Ces fichiers n'existent que dans les sous-groupes blkcg.
-
Alibaba Cloud Linux 3
cgroup v1 :
blkio.cost.weightcgroup v2 :
io.weight
-
Alibaba Cloud Linux 2
cgroup v1 :
blkio.cost.weightcgroup v2 :
io.cost.weight
Configuration
Pour modifier le poids par défaut d'un groupe
blkcg, définissez une valeur de poids pour l'interface :<weight>.Pour modifier le poids d'un groupe
blkcgsur un périphérique spécifique, utilisez le format suivant :MAJ:MIN <weight>.
Modifier les poids
Une fois blk-iocost activé, ces exemples créent des groupes de contrôle (blkcg1 pour cgroup v1, cg1 pour cgroup v2) et définissent le poids par défaut ainsi que le poids spécifique au périphérique 254:48 sur 50.
-
Interface cgroup v1
sudo mkdir /sys/fs/cgroup/blkio/blkcg1 # Create the control group blkcg1 sudo sh -c 'echo "50" > /sys/fs/cgroup/blkio/blkcg1/blkio.cost.weight' # Change the default weight to 50 sudo sh -c 'echo "254:48 50" > /sys/fs/cgroup/blkio/blkcg1/blkio.cost.weight' # Set the weight on the disk to 50 -
Interface cgroup v2
-
Alibaba Cloud Linux 3
sudo mkdir /sys/fs/cgroup/cg1 # Create the control group cg1 sudo sh -c 'echo "50" > /sys/fs/cgroup/cg1/io.weight' # Change the default weight to 50 sudo sh -c 'echo "254:48 50" > /sys/fs/cgroup/cg1/io.weight' # Set the weight on the disk to 50 -
Alibaba Cloud Linux 2
sudo mkdir /sys/fs/cgroup/cg1 # Create the control group cg1 sudo sh -c 'echo "50" > /sys/fs/cgroup/cg1/io.cost.weight' # Change the default weight to 50 sudo sh -c 'echo "254:48 50" > /sys/fs/cgroup/cg1/io.cost.weight' # Set the weight on the disk to 50
-
Outils de surveillance courants
Les outils suivants permettent de surveiller et d'ajuster les performances d'E/S sous blk-iocost.