Cette rubrique présente les données de référence pour les volumes strmvol selon deux axes : l'efficacité de la construction de l'index des métadonnées et le débit de lecture des données. Utilisez ces informations pour évaluer si strmvol répond aux exigences de performance de votre charge de travail et pour choisir la configuration resourceLimit adaptée.
Les valeurs présentées ci-dessous sont théoriques et ont été obtenues dans un environnement de test contrôlé. Les performances réelles dépendent de votre environnement d'exploitation.
Construction de l'index des métadonnées
Lorsqu'aucun pod sur un nœud ne monte un volume strmvol, le premier pod qui monte ce volume déclenche le processus d'initialisation du montage au niveau du nœud. Pendant cette phase, le système crée des périphériques bloc virtuels et construit les index de métadonnées pour les fichiers OSS. Le pod reste à l'état ContainerCreating jusqu'à la fin de l'initialisation.
Environnement de test : ecs.g8i.2xlarge, région cn-beijing
Le tableau suivant compare le temps de construction de l'index et la consommation de ressources entre erofs (Alibaba Cloud Linux 3) et ext4 (autres systèmes d'exploitation).
| Nombre de fichiers sous le point de montage OSS | erofs — durée de construction | erofs — pic mémoire | erofs — pic CPU | ext4 — durée de construction | ext4 — pic mémoire | ext4 — pic CPU |
|---|---|---|---|---|---|---|
| 100 000 | 4,09 s | 125 Mo | 113 % | 6,96 s | 150 Mo | 116 % |
| 1 000 000 | 11,07 s | 871 Mo | 201 % | 35,37 s | 512 Mo | 192 % |
| 10 000 000 | 130,59 s | 8,7 Go | 247 % | 407,00 s | 2,4 Go | 253 % |
Performances de lecture des données
Choisir le scénario de test approprié
Avant de consulter les tableaux ci-dessous, identifiez le scénario correspondant à votre charge de travail :
Lectures aléatoires de petits fichiers (par exemple, inférence d'images) : concentrez-vous sur le tableau des lectures aléatoires avec le mode direct activé.
Lectures séquentielles de petits fichiers ou lectures en flux unique de gros fichiers (par exemple, chargement de modèles, pipelines de données par lots) : concentrez-vous sur le tableau des lectures séquentielles et en flux unique avec le mode direct désactivé.
Comparaison entre strmvol et ossfs : consultez le tableau de comparaison des solutions.
Impact de resourceLimit sur les performances
Le paramètre resourceLimit limite le CPU et la mémoire que le processus strmvol peut utiliser sur un nœud. Cette limite détermine le débit de lecture maximal atteignable par le volume :
Sous la limite : toutes les configurations
resourceLimitoffrent un débit similaire.À la limite : le débit cesse d'augmenter avec la concurrence supplémentaire. Sur les systèmes autres qu'Alibaba Cloud Linux 3, toutes les configurations
resourceLimitatteignent leur plafond de débit avec 64 lectures simultanées.Pour augmenter la limite : sélectionnez un niveau
resourceLimitsupérieur (par exemple, passez de2c4gà4c8g).
Lectures aléatoires, petits fichiers, mode direct activé
Environnement de test : ecs.g7nex.32xlarge, Alibaba Cloud Linux 3, région cn-beijing Scénario de test : fichiers image de 100 Ko, lectures aléatoires, mode direct activé
| Concurrence | Débit (Mo/s) | Débit (img/s) | Plafond de performance |
|---|---|---|---|
| 4 | 11,53 | 101,06 | — |
| 8 | 21,99 | 192,62 | — |
| 16 | 48,01 | 417,95 | — |
| 32 | 93,90 | 817,45 | — |
| 64 | 180,88 | 1 577,12 | Plafond non-Alibaba Cloud Linux 3 |
| 128 | 312,82 | 2 727,48 | Plafond 2c4g |
| 256 | 513,54 | 4 475,20 | Plafond 4c8g |
| 512 | 974,47 | 8 491,96 | Plafond 8c16g |
| 1 024 | 1 306,61 | 11 386,33 | Plafond 16c32g |
Lecture séquentielle et gros fichiers en flux unique, mode direct désactivé
Environnement de test : ecs.g7nex.32xlarge, Alibaba Cloud Linux 3, région cn-beijing Scénario de test : fichiers image de 100 Ko (séquentiel, 256 requêtes simultanées) et gros fichiers en flux unique, mode direct désactivé
Les valeurs prédéfinies de resourceLimit sont optimisées pour offrir les meilleures performances sur les charges de travail en lecture seule générales.
| Limite de ressources | Lecture séquentielle — 256 simultanées (Mo/s) | Lecture séquentielle — 256 simultanées (img/s) | Gros fichier en flux unique (Mo/s) |
|---|---|---|---|
| 2c4g | 349,89 | 2 742,05 | 216 |
| 4c8g | 789,52 | 6 187,34 | 342 |
| 8c16g | 1 446,17 | 11 333,37 | 548 |
| 16c32g | 2 383,38 | 18 678,12 | 926 |
Dans le scénario de gros fichiers en flux unique, le mode 8c16g offre un débit de 2,5 à 2,7 Go/s. Si votre charge de travail présente des caractéristiques de lecture de données spécifiques non couvertes par les valeurs prédéfinies, ouvrez un ticket pour demander de l'aide.
Comparaison des solutions
Environnement de test : ecs.g8i.2xlarge, Alibaba Cloud Linux 3, région cn-beijing
Le tableau compare strmvol à ossfs dans des conditions équivalentes. Le mode direct est activé uniquement pour le scénario de lecture aléatoire de petits fichiers (fichiers texte de 128 Ko).
| Solution (configuration) | Lecture aléatoire 4 threads (Mo/s) | Lecture séquentielle 4 threads (Mo/s) | Gros fichier en flux unique (Mo/s) |
|---|---|---|---|
| ossfs — configuration par défaut | 8,4 | 8,4 | 179,2 |
| ossfs — lecture directe activée, pool mémoire 1 Go | 3,4 | 3,4 | 293,4 |
| strmvol — 2c4g | 24,9 | 40,0 | 196,8 |
| strmvol — 4c8g | 95,6 | 147,1 | 334,5 |