Effet de la mise en cache sur les performances de disque dans Azure
À l’image de vos ordinateurs locaux, les performances d’une machine virtuelle peuvent souvent dépendre directement de la vitesse à laquelle elle peut lire et écrire des données. Pour comprendre comment améliorer les performances, nous devons d’abord comprendre la façon dont elles sont mesurées. Nous devons également comprendre les paramètres et les choix qui affectent cette mesure.
Nous nous penchons en particulier sur le stockage et les disques sous-jacents utilisés pour les machines virtuelles. Quand vous observez les performances, n’oubliez pas que vous devez également prendre en compte la couche Application. Par exemple, si vous exécutez une base de données dans une machine virtuelle, vous devez examiner les paramètres de performances propres à la base de données afin de vérifier qu’elle est optimisée pour la machine virtuelle et le stockage servant à son exécution.
Commençons par définir quelques termes et les garanties qu’Azure apporte à leur sujet.
Opérations d’E/S par seconde
Le type de stockage que vous sélectionnez (Standard ou Premium) détermine la rapidité de vos disques. Nous évaluons ces performances en opérations d’E/S par seconde ou IOPS.
Les IOPS correspondent au nombre de requêtes qu’un disque peut traiter en une seconde. Une seule demande est une opération de lecture ou d’écriture. Cette mesure est appliquée directement au stockage. Par exemple, si vous avez un disque qui peut prendre en charge 5 000 IOPS, cela signifie qu’il est théoriquement capable de traiter 5 000 opérations de lecture ou d’écriture par seconde.
Remarque
Des facteurs externes, notamment la latence, peuvent affecter les IOPS.
Les IOPS affectent directement les performances de votre application. Certaines applications, telles que les sites web de vente au détail, ont besoin d’un IOPS élevé pour gérer toutes les demandes d’E/S petites et aléatoires qui doivent être traitées rapidement pour que le site reste réactif.
IOPS dans Azure
Quand vous attachez un disque de stockage Premium à votre machine virtuelle à grande échelle, Azure provisionne un nombre garanti d’IOPS, conformément à la spécification du disque. Par exemple, un disque P50 provisionne 7500 IOPS. Chaque taille de machine virtuelle à grande échelle est également associée à une limite spécifique d’E/S par seconde qu’elle peut prendre en charge. Par exemple, une machine virtuelle GS5 Standard a une limite de 80 000 IOPS.
Les IOPS sont une mesure des performances de vos disques ; cependant, il s’agit d’une limite théorique. Deux autres facteurs peuvent affecter les performances réelles de l’application : le débit et la latence.
Qu’est-ce que le débit ?
Le débit est la quantité de données que votre application envoie aux disques de stockage dans un intervalle spécifié (généralement, par seconde). Si votre application effectue des E/S avec de grands blocs de données, elle nécessite un débit élevé.
Azure provisionne le débit dans des disques de stockage Premium en fonction de la spécification des disques. Par exemple, un disque P50 provisionne un débit de disque de 250 Mo par seconde. Chaque taille de machine virtuelle à grande échelle est également associée à une limite spécifique de débit qu’elle peut prendre en charge. Par exemple, une machine virtuelle GS5 Standard a un débit maximal de 2 000 Mo par seconde.
IOPS et débit
Le débit et les IOPS sont directement liés, la modification de l’un ayant un impact direct sur l’autre. Pour obtenir une limite de débit théorique, vous pouvez utiliser la formule suivante : IOPS x I/O size = throughput
. Il est important de tenir compte de ces deux valeurs quand vous planifiez votre application.
Qu’est-ce que la latence ?
La lecture et l’écriture de données prennent du temps. La latence est le temps nécessaire à votre application pour envoyer une requête au disque et obtenir une réponse. Essentiellement, la latence indique la durée nécessaire pour traiter une seule demande d’E/S de lecture ou d’écriture.
La latence affecte directement l’IOPS. Par exemple, si notre disque peut gérer 5 000 IOPS, mais que le traitement de chaque opération prend 10 ms, notre application est limitée à 500 opérations par seconde en raison du temps de traitement. Cet exemple est une simple illustration ; la plupart du temps, la latence est considérablement inférieure. Fondamentalement, la latence et le débit déterminent la vitesse à laquelle votre application peut traiter les données à partir du stockage.
Le stockage Premium offre une faible latence, que vous pouvez même améliorer si nécessaire grâce à la mise en cache.
Test des performances de votre disque
Vous pouvez ajuster et équilibrer l’IOPS, le débit et la latence de vos disques de machine virtuelle en sélectionnant le type de stockage et la taille de machine virtuelle appropriés. En général, la taille d’une machine virtuelle garantit un nombre d’IOPS et un débit d’autant plus élevés que la machine virtuelle est grande ou coûteuse. Ajoutez à l’équation le choix entre un stockage Standard ou Premium et entre un disque HDD ou SSD et vous avez plusieurs paramètres sur lesquels jouer.
La sélection de la bonne combinaison implique de comprendre les exigences de votre application. Les applications ayant des niveaux élevés d’E/S, telles que les serveurs de base de données ou les systèmes de traitement transactionnel en ligne, nécessitent un nombre élevé d’IOPS, tandis que les applications qui reposent davantage sur des calculs peuvent se contenter d’exigences plus faibles. En outre, les types d’opérations que les applications effectuent affectent le débit. Les opérations affichant un niveau élevé d’E/S avec accès aléatoire ont tendance à être plus lentes que les lectures séquentielles longues.
Une fois que vous avez sélectionné votre configuration, vous pouvez utiliser des outils comme Iometer pour tester les performances de votre disque sur les machines virtuelles Windows et Linux. Ce test donne une idée plus réaliste du niveau de performance auquel vous pouvez vous attendre. Cette approche peut également vous aider à identifier des méthodes permettant d’améliorer l’utilisation du stockage par votre application. Par exemple, une application qui effectue des E/S mono-thread est susceptible de voir ses performances d’E/S amoindries en raison de la latence.
Dans l’unité suivante, nous examinons d’autres choses que nous pouvons faire pour améliorer les performances de nos disques.