Stockage Azure Premium : conception sous le signe de la haute performanceAzure premium storage: design for high performance

Cet article fournit des instructions pour la création d’applications hautes performances avec Azure Premium Storage.This article provides guidelines for building high performance applications using Azure Premium Storage. Vous pouvez utiliser les instructions fournies dans ce document parallèlement aux bonnes pratiques de performances applicables aux technologies utilisées par votre application.You can use the instructions provided in this document combined with performance best practices applicable to technologies used by your application. Pour illustrer les instructions, nous avons utilisé comme exemple un SQL Server exécuté sur Premium Storage.To illustrate the guidelines, we have used SQL Server running on Premium Storage as an example throughout this document.

Bien que cet article couvre plusieurs scénarios de performances au niveau de la couche de stockage, vous devrez optimiser la couche applicative.While we address performance scenarios for the Storage layer in this article, you will need to optimize the application layer. Par exemple, si vous hébergez une batterie de serveurs SharePoint sur Azure Premium Storage, vous pouvez utiliser les exemples SQL Server de cet article pour optimiser le serveur de base de données.For example, if you are hosting a SharePoint Farm on Azure Premium Storage, you can use the SQL Server examples from this article to optimize the database server. Vous devez également optimiser le serveur web et le serveur d’applications de la batterie de serveurs SharePoint pour obtenir de meilleures performances.Additionally, optimize the SharePoint Farm's Web server and Application server to get the most performance.

Cet article vous aidera à répondre à certaines questions courantes relatives à l’optimisation des performances applicatives sur Azure Premium Storage :This article will help answer following common questions about optimizing application performance on Azure Premium Storage,

  • Comment mesurer les performances de votre application ?How to measure your application performance?
  • Pourquoi n’obtenez-vous pas les hautes performances attendues ?Why are you not seeing expected high performance?
  • Quels sont les facteurs qui influencent les performances de votre application sur Premium Storage ?Which factors influence your application performance on Premium Storage?
  • Comment ces facteurs influencent-ils les performances de votre application sur Premium Storage ?How do these factors influence performance of your application on Premium Storage?
  • Comment optimiser les performances d’E/S par seconde, de bande passante et de latence ?How can you optimize for IOPS, Bandwidth and Latency?

Ces instructions vous sont spécifiquement fournies pour Premium Storage, car les charges de travail exécutées sur Premium Storage sont extrêmement sensibles aux performances.We have provided these guidelines specifically for Premium Storage because workloads running on Premium Storage are highly performance sensitive. Nous vous proposons des exemples lorsque cela s’y prête.We have provided examples where appropriate. Vous pouvez également appliquer certaines de ces instructions aux applications qui s’exécutent sur des machines virtuelles IaaS avec des disques de stockage Standard.You can also apply some of these guidelines to applications running on IaaS VMs with Standard Storage disks.

Notes

Parfois, ce qui semble être un problème de performances disque est en fait un goulot d’étranglement sur le réseau.Sometimes, what appears to be a disk performance issue is actually a network bottleneck. Dans ces situations, vous devez optimiser vos performances réseau.In these situations, you should optimize your network performance.

Si vous souhaitez évaluer votre disque, consultez notre article sur le Benchmarking d’un disque.If you are looking to benchmark your disk, see our article on Benchmarking a disk.

Si votre machine virtuelle prend en charge la mise en réseau accélérée, vous devez vous assurer qu’elle est activée.If your VM supports accelerated networking, you should make sure it is enabled. Si elle n’est pas activée, vous pouvez l’activer sur les machines virtuelles déjà déployées sur Windows et Linux.If it is not enabled, you can enable it on already deployed VMs on both Windows and Linux.

Avant de commencer, si vous débutez avec le Stockage Premium, commencez par lire les articles Sélectionner un type de disque Azure pour les machines virtuelles IaaS et Cibles de scalabilité pour les comptes de stockage d’objets blob de pages Premium.Before you begin, if you are new to Premium Storage, first read the Select an Azure disk type for IaaS VMs and Scalability targets for premium page blob storage accounts.

Indicateurs de performances d’une applicationApplication performance indicators

Pour évaluer le degré de performances d’une application, nous nous appuyons sur divers indicateurs de performances, par exemple la vitesse à laquelle une application traite une demande utilisateur, la quantité de données qu’une application est capable de traiter pour chaque demande, le nombre de requêtes traitées par une application dans un intervalle donné, ou encore le temps d’attente que doit subir l’utilisateur avant d’obtenir une réponse à sa demande.We assess whether an application is performing well or not using performance indicators like, how fast an application is processing a user request, how much data an application is processing per request, how many requests is an application processing in a specific period of time, how long a user has to wait to get a response after submitting their request. Sur le plan technique, ces indicateurs de performances s’expriment en termes d’E/S par seconde, de débit (ou bande passante) et de latence.The technical terms for these performance indicators are, IOPS, Throughput or Bandwidth, and Latency.

Dans cette section, nous allons aborder les indicateurs de performances courants dans le contexte de Premium Storage.In this section, we will discuss the common performance indicators in the context of Premium Storage. Dans la section suivante, intitulée « Collecte des exigences de performances de l’application », vous apprendrez à mesurer ces indicateurs de performances pour votre propre application.In the following section, Gathering Application Requirements, you will learn how to measure these performance indicators for your application. Dans la section consacrée à l’optimisation des performances applicatives, vous découvrirez les facteurs qui affectent ces indicateurs de performances et obtiendrez des recommandations afin de les optimiser.Later in Optimizing Application Performance, you will learn about the factors affecting these performance indicators and recommendations to optimize them.

E/S par secondeIOPS

Le nombre d’E/S par seconde représente le nombre de demandes que votre application envoie aux disques de stockage en une seconde.IOPS, or Input/output Operations Per Second, is the number of requests that your application is sending to the storage disks in one second. Une opération d’entrée/sortie peut être accessible en lecture ou écriture, et être séquentielle ou aléatoire.An input/output operation could be read or write, sequential, or random. Les applications OLTP, comme un site web de vente en ligne, par exemple, doivent traiter immédiatement de nombreuses requêtes d’utilisateurs simultanées.Online Transaction Processing (OLTP) applications like an online retail website need to process many concurrent user requests immediately. Les requêtes utilisateurs représentent des transactions d’insertion et de mise à jour qui pèsent lourdement sur la base de données, et que l’application doit traiter rapidement.The user requests are insert and update intensive database transactions, which the application must process quickly. Les applications OLTP requièrent dont un nombre d’E/S par seconde très élevé.Therefore, OLTP applications require very high IOPS. Ces applications gèrent des millions de demandes d’E/S petites et aléatoires.Such applications handle millions of small and random IO requests. Si vous possédez une telle application, vous devez concevoir votre infrastructure applicative de manière à optimiser les E/S.If you have such an application, you must design the application infrastructure to optimize for IOPS. Dans la section Optimisation des performances applicatives, nous aborderons en détail tous les facteurs que vous devez prendre en compte pour obtenir un nombre d’E/S par seconde élevé.In the later section, Optimizing Application Performance, we discuss in detail all the factors that you must consider to get high IOPS.

Lorsque vous attachez un disque de stockage Premium à votre machine virtuelle à grande échelle, Azure met à disposition un nombre garanti d’E/S par seconde, conformément à la spécification de disque.When you attach a premium storage disk to your high scale VM, Azure provisions for you a guaranteed number of IOPS as per the disk specification. Par exemple, un disque P50 configure 7500 E/S par seconde.For example, a P50 disk provisions 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.Each high scale VM size also has a specific IOPS limit that it can sustain. Par exemple, une machine virtuelle GS5 Standard a une limite de 80 000 E/S par seconde.For example, a Standard GS5 VM has 80,000 IOPS limit.

DébitThroughput

Le débit ou la bande passante est la quantité de données que votre application envoie aux disques de stockage dans un intervalle spécifié.Throughput, or bandwidth is the amount of data that your application is sending to the storage disks in a specified interval. Si votre application effectue des opérations d’entrée/sortie avec des tailles d’unité d’E/S importantes, elle aura besoin d’un débit élevé.If your application is performing input/output operations with large IO unit sizes, it requires high throughput. Les applications d’entrepôt de données ont tendance à émettre des opérations d’analyse intensives qui accèdent simultanément à de grandes quantités de données et exécutent généralement des opérations en bloc.Data warehouse applications tend to issue scan intensive operations that access large portions of data at a time and commonly perform bulk operations. En d’autres termes, ces applications nécessitent un débit plus élevé.In other words, such applications require higher throughput. Si vous possédez une telle application, vous devez concevoir votre infrastructure de manière à en optimiser le débit.If you have such an application, you must design its infrastructure to optimize for throughput. Dans la section suivante, nous décrirons en détail les facteurs que vous devrez ajuster pour y parvenir.In the next section, we discuss in detail the factors you must tune to achieve this.

Lorsque vous attachez un disque de stockage Premium à une machine virtuelle à grande échelle, Azure met à disposition un débit conforme à la spécification de ce disque.When you attach a premium storage disk to a high scale VM, Azure provisions throughput as per that disk specification. Par exemple, un disque P50 configure un débit de disque de 250 Mo par seconde.For example, a P50 disk provisions 250 MB per second disk throughput. Chaque taille de machine virtuelle à grande échelle est également associée à une limite spécifique de débit qu’elle peut prendre en charge.Each high scale VM size also has as specific throughput limit that it can sustain. Par exemple, une machine virtuelle GS5 Standard a un débit maximal de 2 000 Mo par seconde.For example, Standard GS5 VM has a maximum throughput of 2,000 MB per second.

La formule ci-dessous illustre la relation entre le débit et le nombre d’E/S par seconde.There is a relation between throughput and IOPS as shown in the formula below.

Relation entre le nombre d’E/S par seconde et le débit

Par conséquent, il est important de déterminer les valeurs optimales de débit et d’E/S par seconde dont a besoin votre application.Therefore, it is important to determine the optimal throughput and IOPS values that your application requires. Lorsque vous essayez d’optimiser une de ces valeurs, l’autre est également affectée.As you try to optimize one, the other also gets affected. Dans la section Optimisation des performances applicatives, nous aborderons plus en détail la question de l’optimisation des E/S par seconde et du débit.In a later section, Optimizing Application Performance, we will discuss in more details about optimizing IOPS and Throughput.

LatenceLatency

La latence est le temps nécessaire à une application pour recevoir une demande unique, l’envoyer aux disques de stockage et transmettre la réponse au client.Latency is the time it takes an application to receive a single request, send it to the storage disks and send the response to the client. Il s’agit d’une mesure critique des performances d’une application, qui s’ajoute à celle des E/S par seconde et du débit.This is a critical measure of an application's performance in addition to IOPS and Throughput. La latence d’un disque de stockage premium correspond au temps nécessaire pour récupérer les informations d’une demande et les retourner à votre application.The Latency of a premium storage disk is the time it takes to retrieve the information for a request and communicate it back to your application. Premium Storage offre de faibles latences.Premium Storage provides consistent low latencies. Les disques Premium sont conçus pour offrir des latences en millisecondes à un chiffre pour la plupart des opérations d'E/S.Premium Disks are designed to provide single-digit millisecond latencies for most IO operations. Si vous activez une mise en cache de l’hôte en lecture seule sur des disques de stockage premium, vous pourrez obtenir une latence de lecture bien plus faible.If you enable ReadOnly host caching on premium storage disks, you can get much lower read latency. Nous aborderons la mise en cache du disque plus en détail dans la section Optimisation des performances applicatives.We will discuss Disk Caching in more detail in later section on Optimizing Application Performance.

Lorsque vous optimisez votre application pour augmenter le nombre d’E/S par seconde et le débit, la latence de votre application s’en trouve affectée.When you are optimizing your application to get higher IOPS and Throughput, it will affect the latency of your application. Après avoir ajusté les performances de votre application, pensez toujours à évaluer la latence de l’application afin d’éviter un comportement de latence élevée inattendu.After tuning the application performance, always evaluate the latency of the application to avoid unexpected high latency behavior.

Le suivi des opérations de plan de contrôle sur les disques managés peut impliquer le déplacement du disque d’un emplacement de stockage à un autre.The following control plane operations on Managed Disks may involve movement of the Disk from one Storage location to another. Cette opération est effectuée via une copie en arrière-plan des données qui peut prendre plusieurs heures (généralement moins de 24 heures) selon la quantité de données stockées sur les disques.This is orchestrated via background copy of data that can take several hours to complete, typically less than 24 hours depending on the amount of data in the disks. Pendant ce temps, votre application peut afficher une latence de lecture supérieure à la normale car certaines lectures sont redirigées vers l’emplacement d’origine et prennent donc plus de temps.During that time your application can experience higher than usual read latency as some reads can get redirected to the original location and can take longer to complete. Il n’y a aucun impact sur la latence d’écriture pendant cette période.There is no impact on write latency during this period.

  • Mettez à jour le type de stockage.Update the storage type.
  • Détachez un disque d’une machine virtuelle et attachez-le à une autre.Detach and attach a disk from one VM to another.
  • Créez un disque managé à partir d’un VHD.Create a managed disk from a VHD.
  • Créez un disque managé à partir d’un instantané.Create a managed disk from a snapshot.
  • Convertissez des disques non managés en disques managés.Convert unmanaged disks to managed disks.

Liste de vérification des applications hautes performances pour les disquesPerformance Application Checklist for disks

La première étape de la conception d’applications hautes performances exécutées sur le Stockage Azure Premium consiste à comprendre les exigences de performances de votre application.The first step in designing high-performance applications running on Azure Premium Storage is understanding the performance requirements of your application. Après avoir recueilli ces exigences de performances, vous pourrez optimiser votre application de manière à obtenir les meilleures performances possibles.After you have gathered performance requirements, you can optimize your application to achieve the most optimal performance.

Dans la section précédente, nous avons expliqué les indicateurs de performances courants, à savoir le nombre d’E/S par seconde, le débit et la latence.In the previous section, we explained the common performance indicators, IOPS, Throughput, and Latency. Vous devez déterminer, parmi ces indicateurs de performances, lesquels sont essentiels à votre application pour fournir l’expérience utilisateur recherchée.You must identify which of these performance indicators are critical to your application to deliver the desired user experience. Par exemple, un nombre d’E/S par seconde élevé est plus important pour les applications OLTP qui traitent des millions de transactions en une seconde.For example, high IOPS matters most to OLTP applications processing millions of transactions in a second. En revanche, un débit élevé sera plus pertinent pour les applications d’entrepôt de données qui traitent de grandes quantités de données en une seconde.Whereas, high Throughput is critical for Data Warehouse applications processing large amounts of data in a second. De même, une très faible latence sera cruciale pour les applications en temps réel, telles que les sites web de diffusion en continu de vidéo en direct.Extremely low Latency is crucial for real-time applications like live video streaming websites.

Ensuite, vous devrez mesurer les exigences de performances maximales de votre application tout au long de sa durée de vie.Next, measure the maximum performance requirements of your application throughout its lifetime. Utilisez l’exemple de liste de contrôle ci-dessous comme point de départ.Use the sample checklist below as a start. Notez les exigences de performances maximales relevées au cours des périodes de charge de travail normales, des périodes de pointe et des heures creuses.Record the maximum performance requirements during normal, peak, and off-hours workload periods. En identifiant les conditions requises pour tous les niveaux de charges de travail, vous serez en mesure de déterminer les exigences de performances globales de votre application.By identifying requirements for all workloads levels, you will be able to determine the overall performance requirement of your application. Par exemple, la charge de travail normale d’un site web de commerce électronique correspond aux transactions habituellement traitées au quotidien au cours d’une année.For example, the normal workload of an e-commerce website will be the transactions it serves during most days in a year. Les pics de charge du site web correspondront aux transactions traitées pendant la période de Noël ou les périodes de soldes.The peak workload of the website will be the transactions it serves during holiday season or special sale events. Les pics de charge ne durent généralement que pendant un temps limité, mais ils peuvent vous obliger à mettre à l’échelle votre application en multipliant au moins par deux sa capacité par rapport à son fonctionnement normal.The peak workload is typically experienced for a limited period, but can require your application to scale two or more times its normal operation. Déterminez les besoins au 50e percentile, au 90e percentile et au 99e percentile.Find out the 50 percentile, 90 percentile, and 99 percentile requirements. Cela vous permettra d’éliminer les observations aberrantes en termes d’exigences de performances et de concentrer vos efforts sur l’optimisation des valeurs adéquates.This helps filter out any outliers in the performance requirements and you can focus your efforts on optimizing for the right values.

Liste de contrôle pour les exigences de performances de l’applicationApplication performance requirements checklist

Exigences de performancesPerformance requirements 50e percentile50 Percentile 90e percentile90 Percentile 99e percentile99 Percentile
Bande passanteMax. Transactions par secondeTransactions per second
% d’opérations de lecture% Read operations
% d’opérations d’écriture% Write operations
% d’opérations aléatoires% Random operations
% d’opérations séquentielles% Sequential operations
Taille de la demande d’E/SIO request size
Débit moyenAverage Throughput
Bande passanteMax. DébitThroughput
min.Min. LatenceLatency
Latence moyenneAverage Latency
Bande passanteMax. UCCPU
Utilisation moyenne de l’UCAverage CPU
Bande passanteMax. MémoireMemory
Utilisation moyenne de la mémoireAverage Memory
Profondeur de file d’attenteQueue Depth

Notes

vous devez anticiper la mise à l’échelle de ces nombres en fonction de la croissance prévue de votre application.You should consider scaling these numbers based on expected future growth of your application. Il est judicieux de planifier la croissance, car il pourrait être plus difficile de modifier l’infrastructure ultérieurement afin d’en améliorer les performances.It is a good idea to plan for growth ahead of time, because it could be harder to change the infrastructure for improving performance later.

Si vous possédez une application existante et que vous souhaitez migrer vers Premium Storage, commencez par compléter la liste de contrôle ci-dessus pour l’application existante.If you have an existing application and want to move to Premium Storage, first build the checklist above for the existing application. Développez ensuite un prototype de votre application sur Premium Storage et concevez l’application selon les instructions décrites dans la section Optimisation des performances applicatives dans la suite de ce document.Then, build a prototype of your application on Premium Storage and design the application based on guidelines described in Optimizing Application Performance in a later section of this document. L’article suivant décrit les outils que vous pouvez utiliser pour collecter les mesures de performances.The next article describes the tools you can use to gather the performance measurements.

Compteurs de mesure des exigences de performances de l’applicationCounters to measure application performance requirements

La meilleure façon de mesurer les exigences de performances de votre application consiste à utiliser les outils d’analyse des performances fournies par le système d’exploitation du serveur.The best way to measure performance requirements of your application, is to use performance-monitoring tools provided by the operating system of the server. Vous pouvez utiliser PerfMon pour Windows et iostat pour Linux.You can use PerfMon for Windows and iostat for Linux. Ces outils capturent des compteurs correspondant à chaque mesure expliquée dans la section ci-dessus.These tools capture counters corresponding to each measure explained in the above section. Vous devez capturer les valeurs de ces compteurs lorsque votre application exécute ses charges de travail normales, de pointe et d’heures creuses.You must capture the values of these counters when your application is running its normal, peak, and off-hours workloads.

Les compteurs PerfMon sont disponibles pour le processeur, pour la mémoire et pour chaque disque logique et chaque disque physique de votre serveur.The PerfMon counters are available for processor, memory and, each logical disk and physical disk of your server. Lorsque vous utilisez les disques de stockage premium avec une machine virtuelle, les compteurs de disque physique s’appliquent à chaque disque de stockage premium et les compteurs de disque logique à chaque volume créé sur les disques de stockage premium.When you use premium storage disks with a VM, the physical disk counters are for each premium storage disk, and logical disk counters are for each volume created on the premium storage disks. Vous devez capturer les valeurs des disques qui hébergent la charge de travail de votre application.You must capture the values for the disks that host your application workload. S’il existe un mappage un-à-un entre les disques physiques et logiques, vous pouvez consulter les compteurs de disque physique ; sinon, référez-vous aux compteurs de disque logique.If there is a one to one mapping between logical and physical disks, you can refer to physical disk counters; otherwise refer to the logical disk counters. Sous Linux, la commande iostat génère un rapport d’utilisation du processeur et du disque.On Linux, the iostat command generates a CPU and disk utilization report. Le rapport d’utilisation du disque fournit des statistiques par unité physique ou par partition.The disk utilization report provides statistics per physical device or partition. Si vous avez un serveur de base de données dont les données et les journaux résident sur des disques distincts, récupérez ces données pour les deux disques.If you have a database server with its data and logs on separate disks, collect this data for both disks. Le tableau ci-dessous décrit les compteurs de disques, de processeurs et de mémoire :Below table describes counters for disks, processors, and memory:

CompteurCounter DescriptionDescription PerfMonPerfMon IostatIostat
Nombre d’E/S par seconde ou de transactions par secondeIOPS or Transactions per second Nombre de demandes d’E/S émises sur le disque de stockage par seconde.Number of I/O requests issued to the storage disk per second. Nb d’opérations de lectures de disque/sDisk Reads/sec
Nb d’opération d’écriture de disque/sDisk Writes/sec
tpstps
r/sr/s
w/sw/s
Opérations de lecture et d’écriture de disqueDisk Reads and Writes % d’opérations de lecture et d’écriture exécutées sur le disque.% of Reads and Write operations performed on the disk. % temps de lecture du disque% Disk Read Time
% temps d’écriture du disque% Disk Write Time
r/sr/s
w/sw/s
DébitThroughput Quantité de données lues ou écrites sur le disque par seconde.Amount of data read from or written to the disk per second. Nb d’octets de lecture de disque/sDisk Read Bytes/sec
Nb d’octets d’écriture de disque/sDisk Write Bytes/sec
kB_read/skB_read/s
kB_wrtn/skB_wrtn/s
LatenceLatency Durée totale d’exécution d’une demande d’E/S sur le disque.Total time to complete a disk IO request. Temps de lecture moyen du disque/sAverage Disk sec/Read
Temps d’écriture moyen du disque/sAverage disk sec/Write
awaitawait
svctmsvctm
Taille d’E/SIO size La taille des demandes d’E/S émises sur les disques de stockage.The size of I/O requests issues to the storage disks. Nb moyen d’octets en lecture du disqueAverage Disk Bytes/Read
Nb moyen d’octets en écriture du disqueAverage Disk Bytes/Write
avgrq-szavgrq-sz
Profondeur de file d’attenteQueue Depth Nombre de demandes d’E/S en attente de lecture ou d’écriture sur le disque de stockage.Number of outstanding I/O requests waiting to be read from or written to the storage disk. Longueur actuelle de la file d'attente du disqueCurrent Disk Queue Length avgqu-szavgqu-sz
Bande passante MémoireMax. Memory Quantité de mémoire nécessaire pour une exécution fluide de l’applicationAmount of memory required to run application smoothly % d’octets dédiés utilisés% Committed Bytes in Use Use vmstatUse vmstat
Bande passante UCMax. CPU Quantité d’UC nécessaire pour une application fluide de l’applicationAmount CPU required to run application smoothly % temps processeur% Processor time %util%util

En savoir plus sur iostat et PerfMon.Learn more about iostat and PerfMon.

Optimiser les performances de l'applicationOptimize application performance

La nature des demandes d’E/S, la taille de machine virtuelle, la taille de disque, le nombre de disques, la mise en cache du disque, le traitement multithread et la profondeur de file d’attente représentent les principaux facteurs qui influencent les performances d’une application exécutée sur le stockage Premium.The main factors that influence performance of an application running on Premium Storage are Nature of IO requests, VM size, Disk size, Number of disks, disk caching, multithreading, and queue depth. Vous pouvez contrôler certains de ces facteurs avec les dispositifs fournis par le système.You can control some of these factors with knobs provided by the system. La plupart des applications ne vous permettront peut-être pas de modifier directement la taille d’E/S et la profondeur de file d’attente.Most applications may not give you an option to alter the IO size and Queue Depth directly. Par exemple, si vous utilisez SQL Server, vous ne pouvez choisir ni la taille d’E/S ni la profondeur de file d’attente.For example, if you are using SQL Server, you cannot choose the IO size and queue depth. SQL Server choisit les valeurs optimales de taille d’E/S et de profondeur de file d’attente profondeur de manière à obtenir les meilleures performances.SQL Server chooses the optimal IO size and queue depth values to get the most performance. Il est important de comprendre les effets de ces deux types de facteurs sur les performances de votre application, afin que vous puissiez configurer les ressources appropriées pour répondre à vos besoins de performances.It is important to understand the effects of both types of factors on your application performance, so that you can provision appropriate resources to meet performance needs.

Dans cette section, reportez-vous à la liste de contrôle des exigences de performances applicatives que vous avez créée pour identifier le degré nécessaire d’optimisation des performances de votre application.Throughout this section, refer to the application requirements checklist that you created, to identify how much you need to optimize your application performance. Sur cette base, vous serez en mesure de déterminer les facteurs de cette section que vous devrez paramétrer.Based on that, you will be able to determine which factors from this section you will need to tune. Pour évaluer les effets de chaque facteur sur les performances de votre application, exécutez les outils de benchmarking sur l’installation de votre application.To witness the effects of each factor on your application performance, run benchmarking tools on your application setup. Reportez-vous à l’article Benchmarking (voir le lien à la fin) pour connaître les étapes à suivre pour exécuter les outils d’évaluation courants sur les machines virtuelles Windows et Linux.Refer to the Benchmarking article, linked at the end, for steps to run common benchmarking tools on Windows and Linux VMs.

Aperçu de l’optimisation des IOPS, du débit et de la latenceOptimize IOPS, throughput, and latency at a glance

Le tableau ci-dessous récapitule les facteurs de performances et les étapes nécessaires à l’optimisation des IOPS, du débit et de la latence.The table below summarizes performance factors and the steps necessary to optimize IOPS, throughput, and latency. Les sections qui suivent ce résumé décrivent en détail chaque facteur.The sections following this summary will describe each factor is much more depth.

Pour plus d’informations sur les tailles de machine virtuelle et sur les E/S par seconde, le débit et la latence disponible pour chaque type de machine virtuelle, consultez Tailles des machines virtuelles Linux ou Tailles des machines virtuelles Windows.For more information on VM sizes and on the IOPS, throughput, and latency available for each type of VM, see Linux VM sizes or Windows VM sizes.

D’OPÉRATIONS D’E/S PAR SECONDEIOPS DébitThroughput LatenceLatency
Exemple de scénarioExample Scenario Application OLTP d’entreprise nécessitant un taux très élevé de transactions par seconde.Enterprise OLTP application requiring very high transactions per second rate. Application d’entreposage de données d’entreprise traitant de grandes quantités de données.Enterprise Data warehousing application processing large amounts of data. Applications en temps quasi-réel nécessitant une réponse instantanée aux demandes utilisateur, telles que les jeux en ligne.Near real-time applications requiring instant responses to user requests, like online gaming.
Facteurs de performancesPerformance factors      
Taille d’E/SIO size Une plus petite taille d’E/S génère un nombre d’E/S par seconde plus élevé.Smaller IO size yields higher IOPS. Une plus grande taille d’E/S génère un débit plus élevé.Larger IO size to yields higher Throughput.  
Taille de la machine virtuelleVM size Utilisez une taille de machine virtuelle qui offre un nombre d’E/S par seconde supérieur aux besoins de votre application.Use a VM size that offers IOPS greater than your application requirement. Utilisez une taille de machine virtuelle qui offre une limite de débit supérieure aux besoins de votre application.Use a VM size with throughput limit greater than your application requirement. Utilisez une taille de machine virtuelle qui offre une limite de mise à l’échelle supérieure aux besoins de votre application.Use a VM size that offers scale limits greater than your application requirement.
Taille du disqueDisk size Utilisez une taille de disque qui offre un nombre d’E/S par seconde supérieur aux besoins de votre application.Use a disk size that offers IOPS greater than your application requirement. Utilisez une taille de disque qui offre une limite de débit supérieure aux besoins de votre application.Use a disk size with Throughput limit greater than your application requirement. Utilisez une taille de disque qui offre une limite de mise à l’échelle supérieure aux besoins de votre application.Use a disk size that offers scale limits greater than your application requirement.
Limites de mises à l’échelle des machines virtuelles et des disquesVM and Disk Scale Limits La limite d’E/S par seconde de la taille de machine virtuelle choisie doit être supérieure au nombre total d’E/S par seconde générées par les disques de stockage qui lui sont associés.IOPS limit of the VM size chosen should be greater than total IOPS driven by storage disks attached to it. La limite de débit par seconde de la taille de machine virtuelle choisie doit être supérieure au débit total généré par les disques de stockage premium qui lui sont associés.Throughput limit of the VM size chosen should be greater than total Throughput driven by premium storage disks attached to it. Les limites de mise à l’échelle de la taille de machine virtuelle choisie doivent être supérieures aux limites totales de mise à l’échelle des disques de stockage premium qui lui sont associés.Scale limits of the VM size chosen must be greater than total scale limits of attached premium storage disks.
Mise en cache du disqueDisk Caching Activez le cache en lecture seule sur les disques de stockage premium avec des opérations de lecture intensives pour obtenir un taux d’E/S en lecture par seconde plus élevé.Enable ReadOnly Cache on premium storage disks with Read heavy operations to get higher Read IOPS.   Activez le cache en lecture seule sur les disques de stockage premium avec des opérations de lecture intensives pour obtenir de très faibles latences en lecture.Enable ReadOnly Cache on premium storage disks with Ready heavy operations to get very low Read latencies.
Entrelacement de disquesDisk Striping Utilisez plusieurs disques et entrelacez-les pour augmenter la limite combinée de débit et d’E/S par seconde.Use multiple disks and stripe them together to get a combined higher IOPS and Throughput limit. La limite combinée par machine virtuelle doit être supérieure aux limites combinées des disques premium associés.The combined limit per VM should be higher than the combined limits of attached premium disks.    
Taille de l’entrelacementStripe Size Taille d’entrelacement plus petite pour les petits schémas d’E/S aléatoires associés aux applications OLTP.Smaller stripe size for random small IO pattern seen in OLTP applications. Utilisez par exemple une taille d’entrelacement de 64 Ko pour les applications OLTP sous SQL Server.For example, use stripe size of 64 KB for SQL Server OLTP application. Plus grande taille d’entrelacement pour les grands schémas d’E/S séquentiels associés aux applications d’entrepôt de données.Larger stripe size for sequential large IO pattern seen in Data Warehouse applications. Utilisez par exemple une taille d’entrelacement de 256 Ko pour les applications d’entrepôt de données sous SQL Server.For example, use 256 KB stripe size for SQL Server Data warehouse application.  
Traitement multithreadMultithreading Utilisez le traitement multithread pour envoyer un plus grand nombre de demandes à Premium Storage et augmenter ainsi le débit et le nombre d’E/S par seconde.Use multithreading to push higher number of requests to Premium Storage that will lead to higher IOPS and Throughput. Sur SQL Server, par exemple, définissez une valeur MAXDOP élevée pour allouer plus de ressources processeur à SQL Server.For example, on SQL Server set a high MAXDOP value to allocate more CPUs to SQL Server.    
Profondeur de file d’attenteQueue Depth Une plus grande profondeur de file d’attente génère un nombre plus élevé d’E/S par seconde.Larger Queue Depth yields higher IOPS. Une plus grande profondeur de file d’attente génère un débit plus élevé.Larger Queue Depth yields higher Throughput. Une plus petite profondeur de file d’attente réduit les latences.Smaller Queue Depth yields lower latencies.

Nature des demandes d’E/SNature of IO requests

Une demande d’E/S représente une unité d’opération d’entrée/sortie exécutée par votre application.An IO request is a unit of input/output operation that your application will be performing. Identifier la nature des demandes d’E/S (aléatoires ou séquentielles, en lecture ou en écriture, petites ou grandes) vous permet de déterminer les exigences de performances de votre application.Identifying the nature of IO requests, random or sequential, read or write, small or large, will help you determine the performance requirements of your application. Il est important de comprendre la nature des demandes d’E/S afin de prendre les bonnes décisions lors de la conception de votre infrastructure d’applications.It is important to understand the nature of IO requests, to make the right decisions when designing your application infrastructure. Pour bénéficier des meilleures performances possibles, veillez à ce que les E/S soient distribuées de façon uniforme.IOs must be distributed evenly to achieve the best performance possible.

La taille des E/S compte parmi les facteurs les plus importants.IO size is one of the more important factors. La taille des E/S correspond à la taille de la demande d’opération d’entrée/sortie générée par votre application.The IO size is the size of the input/output operation request generated by your application. La taille des E/S a un impact significatif sur les performances, en particulier sur le nombre d’E/S par seconde et sur la bande passante, que l’application sera en mesure de délivrer.The IO size has a significant impact on performance especially on the IOPS and Bandwidth that the application is able to achieve. La formule suivante montre la relation entre le nombre d’IOPS, la taille des E/S et la bande passante ou le débit.The following formula shows the relationship between IOPS, IO size, and Bandwidth/Throughput.
Diagramme montrant l’équation IOPS et taille d’E/S correspondant au débit.

Certaines applications vous permettent de modifier leur taille d’E/S, contrairement à d’autres.Some applications allow you to alter their IO size, while some applications do not. Par exemple, SQL Server détermine lui-même la taille d’E/S optimale et ne fournit aux utilisateurs aucun dispositif permettant de la modifier.For example, SQL Server determines the optimal IO size itself, and does not provide users with any knobs to change it. De son côté, Oracle propose un paramètre appelé DB_BLOCK_SIZE que vous pouvez utiliser pour configurer la taille de la demande d’E/S de la base de données.On the other hand, Oracle provides a parameter called DB_BLOCK_SIZE using which you can configure the I/O request size of the database.

Si vous utilisez une application qui ne permet pas de modifier la taille d’E/S, suivez les indications de cet article pour optimiser les indicateurs de performances qui correspondent le mieux à votre application.If you are using an application, which does not allow you to change the IO size, use the guidelines in this article to optimize the performance KPI that is most relevant to your application. Par exemple,For example,

  • Une application OLTP génère des millions de demandes d’E/S petites et aléatoires.An OLTP application generates millions of small and random IO requests. Pour gérer ces types de demandes d’E/S, vous devez concevoir votre infrastructure d’applications de manière à augmenter le nombre d’IOPS.To handle these types of IO requests, you must design your application infrastructure to get higher IOPS.
  • Une application d’entrepôt de données génère d’importantes demandes d’E/S séquentielles.A data warehousing application generates large and sequential IO requests. Pour gérer ces types de demandes d’E/S, vous devez concevoir votre infrastructure d’applications de manière à augmenter la bande passante ou le débit.To handle these types of IO requests, you must design your application infrastructure to get higher Bandwidth or Throughput.

Si vous utilisez une application qui vous permet de modifier la taille d’E/S, utilisez cette règle générale tout en respectant les autres instructions de performances.If you are using an application, which allows you to change the IO size, use this rule of thumb for the IO size in addition to other performance guidelines,

  • Une plus petite taille d’E/S pour générer un nombre d’E/S par seconde plus élevé.Smaller IO size to get higher IOPS. Par exemple, 8 Ko pour une application OLTP.For example, 8 KB for an OLTP application.
  • Une plus grande taille d’E/S pour augmenter la bande passante ou le débit.Larger IO size to get higher Bandwidth/Throughput. Par exemple, 1 024 Ko pour une application d’entrepôt de données.For example, 1024 KB for a data warehouse application.

Voici un exemple de calcul du nombre d’E/S par seconde et du débit ou de la bande passante pour votre application.Here is an example on how you can calculate the IOPS and Throughput/Bandwidth for your application. Supposons une application utilisant un disque P30.Consider an application using a P30 disk. Un disque P30 peut atteindre au maximum 5 000 E/S par seconde et 200 Mo de débit/bande passante par seconde.The maximum IOPS and Throughput/Bandwidth a P30 disk can achieve is 5000 IOPS and 200 MB per second respectively. À présent, si votre application a besoin d’utiliser le nombre maximal d’E/S par seconde du disque P30 alors que vous utilisez une taille d’E/S inférieure à 8 Ko, vous devriez obtenir 40 Mo de bande passante par seconde.Now, if your application requires the maximum IOPS from the P30 disk and you use a smaller IO size like 8 KB, the resulting Bandwidth you will be able to get is 40 MB per second. En revanche, si votre application requiert la valeur maximale de débit et de bande passante à partir du disque P30 et que vous utilisez une taille d’E/S supérieure à 1 024 Ko, vous obtiendrez seulement 200 E/S par seconde.However, if your application requires the maximum Throughput/Bandwidth from P30 disk, and you use a larger IO size like 1024 KB, the resulting IOPS will be less, 200 IOPS. Vous devez donc ajuster la taille d’E/S pour qu’elle réponde aux besoins de votre application tant en terme d’E/S que de débit et de bande passante.Therefore, tune the IO size such that it meets both your application's IOPS and Throughput/Bandwidth requirement. Le tableau suivant récapitule les différentes tailles d’E/S en indiquant le nombre d’IOPS et le débit correspondants dans le cas d’un disque P30.The following table summarizes the different IO sizes and their corresponding IOPS and Throughput for a P30 disk.

Spécification de l’applicationApplication Requirement Taille des E/SI/O size E/S par secondeIOPS Débit/bande passanteThroughput/Bandwidth
Nb max. d’E/S par secondeMax IOPS 8 Ko8 KB 5 0005,000 40 Mo par seconde40 MB per second
Débit max.Max Throughput 1 024 Ko1024 KB 200200 200 Mo par seconde200 MB per second
Débit max + nb élevé d’E/S par secondeMax Throughput + high IOPS 64 Ko64 KB 3 2003,200 200 Mo par seconde200 MB per second
Nb max d’E/S par seconde + débit élevéMax IOPS + high Throughput 32 Ko32 KB 5 0005,000 160 Mo par seconde160 MB per second

Pour obtenir une valeur d’E/S par seconde et de bande passante supérieure à la valeur maximale d’un seul disque de stockage premium, utilisez plusieurs disques premium entrelacés ensemble.To get IOPS and Bandwidth higher than the maximum value of a single premium storage disk, use multiple premium disks striped together. Par exemple, entrelacez deux disques P30 pour obtenir un total de 10 000 E/S par seconde ou un débit combiné de 400 Mo par seconde.For example, stripe two P30 disks to get a combined IOPS of 10,000 IOPS or a combined Throughput of 400 MB per second. Comme nous l’expliquons dans la section suivante, vous devez utiliser une taille de machine virtuelle qui prend en charge la valeur combinée d’E/S par seconde et de débit du disque.As explained in the next section, you must use a VM size that supports the combined disk IOPS and Throughput.

Notes

lorsque vous augmentez les E/S par seconde ou le débit, l’autre valeur augmente également ; assurez-vous de ne pas franchir les limites de débit ou d’E/S par seconde du disque ou de la machine virtuelle lorsque vous augmentez l’une de ces valeurs.As you increase either IOPS or Throughput the other also increases, make sure you do not hit throughput or IOPS limits of the disk or VM when increasing either one.

Pour évaluer les effets de la taille des E/S sur les performances de l’application, vous pouvez exécuter des outils d’évaluation sur votre machine virtuelle et sur vos disques.To witness the effects of IO size on application performance, you can run benchmarking tools on your VM and disks. Créez plusieurs séries de tests et utilisez une taille d’E/S différente pour chaque exécution afin d’en déterminer l’impact.Create multiple test runs and use different IO size for each run to see the impact. Pour plus de détails, reportez-vous à l’article Benchmarking, dont un lien est fourni à la fin.Refer to the Benchmarking article, linked at the end, for more details.

Tailles des machines virtuelles à grande échelleHigh scale VM sizes

Lorsque vous commencez la conception d’une application, l’une des premières choses à faire est de choisir une machine virtuelle qui hébergera votre application.When you start designing an application, one of the first things to do is, choose a VM to host your application. Premium Storage est fourni avec des tailles de machine virtuelle à grande échelle capables d’exécuter des applications qui requièrent une plus grande puissance de calcul et de hautes performances d’E/S du disque local.Premium Storage comes with High Scale VM sizes that can run applications requiring higher compute power and a high local disk I/O performance. Ces machines virtuelles se caractérisent par des processeurs plus rapides, un rapport mémoire-cœur plus élevé et l’utilisation d’un disque SSD comme disque local.These VMs provide faster processors, a higher memory-to-core ratio, and a Solid-State Drive (SSD) for the local disk. Les machines virtuelles de la série DS et GS sont des exemples de machines virtuelles à grande échelle prenant en charge le stockage Premium.Examples of High Scale VMs supporting Premium Storage are the DS and GS series VMs.

Ces machines virtuelles sont disponibles en différentes tailles, avec un nombre de cœurs de processeur, une mémoire, un système d’exploitation et une taille de disque temporaire différents.High Scale VMs are available in different sizes with a different number of CPU cores, memory, OS, and temporary disk size. Chaque taille de chaque machine virtuelle possède également un nombre maximal de disques de données que vous pouvez attacher à la machine virtuelle.Each VM size also has maximum number of data disks that you can attach to the VM. Par conséquent, la taille de machine virtuelle choisie affectera la quantité de traitement, de mémoire et de capacité de stockage disponible pour votre application.Therefore, the chosen VM size will affect how much processing, memory, and storage capacity is available for your application. Elle affecte également le coût de traitement et de stockage.It also affects the Compute and Storage cost. Par exemple, voici les spécifications de la plus grande taille de machine virtuelle dans une série DS et une série GS :For example, below are the specifications of the largest VM size in a DS series and a GS series:

Taille de la machine virtuelleVM size Cœurs d’unité centraleCPU cores MémoireMemory Tailles du disque de la machine virtuelleVM disk sizes Bande passanteMax. disques de donnéesdata disks Taille du cacheCache size E/S par secondeIOPS Limites d’E/S du cache de bande passanteBandwidth Cache IO limits
Standard_DS14Standard_DS14 1616 112 Go112 GB OS = 1023 GoOS = 1023 GB
SSD local = 224 GoLocal SSD = 224 GB
3232 576 Go576 GB 50 000 E/S par seconde50,000 IOPS
512 Mo par seconde512 MB per second
4 000 E/S par seconde et 33 Mo par seconde4,000 IOPS and 33 MB per second
Standard_GS5Standard_GS5 3232 448 Go448 GB OS = 1023 GoOS = 1023 GB
SSD local = 896 GoLocal SSD = 896 GB
6464 4 224 Go4224 GB 80 000 E/S par seconde80,000 IOPS
2 000 Mo par seconde2,000 MB per second
5 000 E/S par seconde et 50 Mo par seconde5,000 IOPS and 50 MB per second

Pour afficher une liste complète de toutes les tailles de machine virtuelle Azure disponibles, consultez les articles Tailles des machines virtuelles dans Azure (Windows) ou Tailles des machines virtuelles dans Azure (Linux).To view a complete list of all available Azure VM sizes, refer to Windows VM sizes or Linux VM sizes. Choisissez une taille de machine virtuelle capable de s’adapter aux exigences de performances souhaitées de votre application.Choose a VM size that can meet and scale to your desired application performance requirements. En outre, prenez en compte les considérations suivantes lors du choix de tailles de machine virtuelle.In addition to this, take into account following important considerations when choosing VM sizes.

Limites de mise à l’échelleScale Limits
Les limites d’E/S par seconde par machine virtuelle et par disque sont différentes et indépendantes les unes des autres.The maximum IOPS limits per VM and per disk are different and independent of each other. Assurez-vous que l’application génère un nombre d’E/S par seconde dans les limites de la machine virtuelle et des disques premium qui lui sont associés.Make sure that the application is driving IOPS within the limits of the VM as well as the premium disks attached to it. Dans le cas contraire, les performances de l’application seront limitées.Otherwise, application performance will experience throttling.

Par exemple, supposons une application exigeant un maximum de 4 000 E/S par seconde.As an example, suppose an application requirement is a maximum of 4,000 IOPS. Pour atteindre cette valeur, vous devez configurer un disque P30 sur une machine virtuelle DS1.To achieve this, you provision a P30 disk on a DS1 VM. Le disque P30 peut fournir jusqu’à 5 000 E/S par seconde.The P30 disk can deliver up to 5,000 IOPS. En revanche, la machine virtuelle DS1 est limitée à 3 200 E/S par seconde.However, the DS1 VM is limited to 3,200 IOPS. Par conséquent, les performances de l’application seront contraintes par la limite de la machine virtuelle à 3 200 E/S par seconde, ce qui affectera les performances.Consequently, the application performance will be constrained by the VM limit at 3,200 IOPS and there will be degraded performance. Pour éviter cette situation, choisissez une taille de machine virtuelle et de disque qui satisfont toutes deux aux exigences de l’application.To prevent this situation, choose a VM and disk size that will both meet application requirements.

Coût d’exploitationCost of Operation
Dans de nombreux cas, il est possible que le coût global d’exploitation lié à l’utilisation de Premium Storage soit inférieur à celui associé à l’utilisation d’un stockage Standard.In many cases, it is possible that your overall cost of operation using Premium Storage is lower than using Standard Storage.

Imaginez par exemple une application nécessitant 16 000 E/S par seconde.For example, consider an application requiring 16,000 IOPS. Pour atteindre ces performances, vous aurez besoin d’une machine virtuelle IaaS Azure Standard_D14, qui peut délivrer 16 000 IOPS maximum en utilisant 32 disques de stockage standard de 1 To.To achieve this performance, you will need a Standard_D14 Azure IaaS VM, which can give a maximum IOPS of 16,000 using 32 standard storage 1 TB disks. Chaque disque de stockage standard de 1 To peut atteindre un maximum de 500 IOPS.Each 1-TB standard storage disk can achieve a maximum of 500 IOPS. Le coût mensuel estimé de cette machine virtuelle sera de 1 570 $.The estimated cost of this VM per month will be $1,570. Le coût mensuel de 32 disques de stockage standard sera de 1 638 $.The monthly cost of 32 standard storage disks will be $1,638. Le coût total mensuel estimé sera donc de 3 208 $.The estimated total monthly cost will be $3,208.

Toutefois, si vous aviez hébergé la même application sur Premium Storage, vous auriez besoin d’une plus petite taille de machine virtuelle et de moins de disques de stockage premium, ce qui réduirait le coût global.However, if you hosted the same application on Premium Storage, you will need a smaller VM size and fewer premium storage disks, thus reducing the overall cost. Une machine virtuelle Standard_StandardDS13 peut couvrir les 16 000 E/S par seconde requis à l’aide de quatre disques P30.A Standard_DS13 VM can meet the 16,000 IOPS requirement using four P30 disks. La machine virtuelle DS13 délivre 25 600 E/S par seconde au maximum et chaque disque P30 délivre 5 000 E/S par seconde.The DS13 VM has a maximum IOPS of 25,600 and each P30 disk has a maximum IOPS of 5,000. Globalement, cette configuration peut atteindre 5 000 x 4 = 20 000 E/S par seconde.Overall, this configuration can achieve 5,000 x 4 = 20,000 IOPS. Le coût mensuel estimé de cette machine virtuelle sera de 1 003 $.The estimated cost of this VM per month will be $1,003. Le coût mensuel de quatre disques de stockage premium P30 sera de 544,34 $.The monthly cost of four P30 premium storage disks will be $544.34. Le coût total mensuel estimé sera donc de 1 544 $.The estimated total monthly cost will be $1,544.

Le tableau ci-dessous résume la répartition des coûts de ce scénario pour un stockage Standard et Premium.Table below summarizes the cost breakdown of this scenario for Standard and Premium Storage.

  StandardStandard PremiumPremium
Coût de la machine virtuelle par moisCost of VM per month 1 570,58 $ (Standard_StandardD14)$1,570.58 (Standard_D14) 1 003,66 $ (Standard_StandardDS13)$1,003.66 (Standard_DS13)
Coût des disques par moisCost of Disks per month 1 638,40 $ (32 disques de 1 To)$1,638.40 (32 x 1-TB disks) 544,34 $ (4 disques P30)$544.34 (4 x P30 disks)
Coût global par moisOverall Cost per month 3 208,98 $$3,208.98 1 544,34 $$1,544.34

Distributions LinuxLinux Distros

Avec Azure Premium Storage, vous obtenez le même niveau de performances pour les machines virtuelles exécutant Windows et Linux.With Azure Premium Storage, you get the same level of Performance for VMs running Windows and Linux. Nous prenons en charge diverses distributions Linux, dont vous trouverez la liste complète ici.We support many flavors of Linux distros, and you can see the complete list here. Il est important de noter que les différentes distributions sont mieux adaptées à différents types de charges de travail.It is important to note that different distros are better suited for different types of workloads. Vous verrez différents niveaux de performances selon la distribution sur laquelle votre charge de travail est exécutée.You will see different levels of performance depending on the distro your workload is running on. Testez les distributions Linux avec votre application et choisissez celle qui vous convient le mieux.Test the Linux distros with your application and choose the one that works best.

Lorsque vous exécutez Linux avec Premium Storage, vérifiez les dernières mises à jour sur les pilotes requis pour garantir de meilleures performances.When running Linux with Premium Storage, check the latest updates about required drivers to ensure high performance.

Tailles de disques Stockage PremiumPremium storage disk sizes

Le stockage Premium Azure offre une diversité de tailles et vous permet de choisir celle qui répond le mieux à vos besoins.Azure Premium Storage offers a variety of sizes so you can choose one that best suits your needs. Chaque taille de disque a une limite de mise à l’échelle bien spécifique pour le nombre d’IOPS, la bande passante et le stockage.Each disk size has a different scale limit for IOPS, bandwidth, and storage. Choisissez la taille de disque Premium Storage adaptée aux exigences de l’application et à la taille de machine virtuelle à grande échelle.Choose the right Premium Storage Disk size depending on the application requirements and the high scale VM size. Le tableau ci-dessous présente les tailles de disque et leurs fonctionnalités.The table below shows the disks sizes and their capabilities. Les tailles P4, P6, P15, P60, P70 et P80 ne sont actuellement prises en charge que par la fonctionnalité Disques managés.P4, P6, P15, P60, P70, and P80 sizes are currently only supported for Managed Disks.

Tailles de disque SSD PremiumPremium SSD sizes  P1P1 P2P2 P3P3 P4P4 P6P6 P10P10 P15P15 P20P20 P30P30 P40P40 P50P50 P60P60 P70P70 P80P80
Taille du disque (Gio)Disk size in GiB 44 88 1616 3232 6464 128128 256256 512512 1 0241,024 2 0482,048 4 0964,096 8 1928,192 16 38416,384 32 76732,767
IOPS provisionnées par disqueProvisioned IOPS per disk 120120 120120 120120 120120 240240 500500 1 1001,100 2 3002,300 5 0005,000 7 5007,500 7 5007,500 16 00016,000 18 00018,000 20 00020,000
Débit provisionné par disqueProvisioned Throughput per disk 25 Mo/s25 MB/sec 25 Mo/s25 MB/sec 25 Mo/s25 MB/sec 25 Mo/s25 MB/sec 50 Mo/s50 MB/sec 100 Mo/s100 MB/sec 125 Mo/s125 MB/sec 150 Mo/s150 MB/sec 200 Mo/s200 MB/sec 250 Mo/s250 MB/sec 250 Mo/s250 MB/sec 500 Mo/s500 MB/sec 750 Mo/s750 MB/sec 900 Mo/s900 MB/sec
Nb max. d’iOPS de rafale par disqueMax burst IOPS per disk 3 5003,500 3 5003,500 3 5003,500 3 5003,500 3 5003,500 3 5003,500 3 5003,500 3 5003,500
Débit max. de rafale par disqueMax burst throughput per disk 170 Mo/s170 MB/sec 170 Mo/s170 MB/sec 170 Mo/s170 MB/sec 170 Mo/s170 MB/sec 170 Mo/s170 MB/sec 170 Mo/s170 MB/sec 170 Mo/s170 MB/sec 170 Mo/s170 MB/sec
Durée maximale de rafaleMax burst duration 30 min30 min 30 min30 min 30 min30 min 30 min30 min 30 min30 min 30 min30 min 30 min30 min 30 min30 min
Éligible pour la réservationEligible for reservation NonNo NonNo NonNo NonNo NonNo NonNo NonNo NonNo Oui, jusqu’à un anYes, up to one year Oui, jusqu’à un anYes, up to one year Oui, jusqu’à un anYes, up to one year Oui, jusqu’à un anYes, up to one year Oui, jusqu’à un anYes, up to one year Oui, jusqu’à un anYes, up to one year

Le nombre de disques que vous choisissez dépend de la taille de disque choisie.How many disks you choose depends on the disk size chosen. Vous pouvez utiliser un seul disque P50 ou plusieurs disques P10 pour répondre aux besoins de votre application.You could use a single P50 disk or multiple P10 disks to meet your application requirement. Tenez compte des remarques ci-dessous pour faire votre choix.Take into account considerations listed below when making the choice.

Limites de mise à l’échelle (E/S par seconde et débit)Scale Limits (IOPS and Throughput)
Les limites d’E/S par seconde et de débit de chaque taille de disque Premium sont différentes et indépendantes des limites de mise à l’échelle de la machine virtuelle.The IOPS and Throughput limits of each Premium disk size is different and independent from the VM scale limits. Assurez-vous que le nombre total d’E/S par seconde et le débit total des disques respectent bien les limites de mise à l’échelle de la taille de machine virtuelle choisie.Make sure that the total IOPS and Throughput from the disks are within scale limits of the chosen VM size.

Imaginez par exemple que votre application requiert un débit maximum de 250 Mo/s et que vous utilisez une machine virtuelle DS4 avec un seul disque P30.For example, if an application requirement is a maximum of 250 MB/sec Throughput and you are using a DS4 VM with a single P30 disk. La machine virtuelle DS4 peut délivrer un débit maximum de 256 Mo/s.The DS4 VM can give up to 256 MB/sec Throughput. Cependant, un disque P30 a une limite de débit de 200 Mo par seconde. De ce fait, l’application sera contrainte à 200 Mo/s en raison de la limite du disque.However, a single P30 disk has Throughput limit of 200 MB/sec. Consequently, the application will be constrained at 200 MB/sec due to the disk limit. Pour contourner cette limite, configurez plusieurs disques de données sur la machine virtuelle ou redimensionnez vos disques (de P40 à P50).To overcome this limit, provision more than one data disks to the VM or resize your disks to P40 or P50.

Notes

Les lectures traitées par le cache n’étant pas incluses dans les E/S et le débit de disque, elles ne sont pas soumises aux limites de disque.Reads served by the cache are not included in the disk IOPS and Throughput, hence not subject to disk limits. Le cache possède sa propre limite de débit et d’E/S pour chaque machine virtuelle.Cache has its separate IOPS and Throughput limit per VM.

Par exemple, les lectures et écritures sont initialement de 60 Mo/s et 40 Mo/s respectivement.For example, initially your reads and writes are 60MB/sec and 40MB/sec respectively. Au fil du temps, le cache augmente et sert de plus en plus de lectures.Over time, the cache warms up and serves more and more of the reads from the cache. Vous pouvez alors obtenir un plus grand débit en écriture à partir du disque.Then, you can get higher write Throughput from the disk.

Nombre de disquesNumber of Disks
Déterminez le nombre de disques dont vous aurez besoin en évaluant les besoins de l’application.Determine the number of disks you will need by assessing application requirements. Chaque taille de chaque machine virtuelle est limitée quant au nombre de disques que vous pouvez lui associer.Each VM size also has a limit on the number of disks that you can attach to the VM. En règle générale, ce nombre est égal à deux fois le nombre de cœurs.Typically, this is twice the number of cores. Assurez-vous que la taille de machine virtuelle que vous choisissez est capable de prendre en charge le nombre de disques nécessaires.Ensure that the VM size you choose can support the number of disks needed.

N’oubliez pas les disques Premium Storage délivrent des performances supérieures à celles des disques de stockage Standard.Remember, the Premium Storage disks have higher performance capabilities compared to Standard Storage disks. Par conséquent, si vous migrez votre application d’un stockage Standard à un stockage Premium à partir d’une machine virtuelle IaaS Azure, vous aurez probablement besoin de moins de disques premium pour atteindre des performances identiques ou supérieures pour votre application.Therefore, if you are migrating your application from Azure IaaS VM using Standard Storage to Premium Storage, you will likely need fewer premium disks to achieve the same or higher performance for your application.

Mise en cache du disqueDisk caching

Les machines virtuelles à grande échelle qui exploitent Azure Premium Storage ont une technologie de mise en cache à plusieurs niveaux appelée BlobCache.High Scale VMs that leverage Azure Premium Storage have a multi-tier caching technology called BlobCache. BlobCache utilise à la fois la RAM de l’hôte et un SSD local pour la mise en cache.BlobCache uses a combination of the host RAM and local SSD for caching. Ce cache est disponible pour les disques persistants Premium Storage et pour les disques locaux de la machine virtuelle.This cache is available for the Premium Storage persistent disks and the VM local disks. Par défaut, ce paramètre de cache est défini en lecture/écriture pour les disques du système d’exploitation et en lecture seule pour les disques de données hébergés sur Premium Storage.By default, this cache setting is set to Read/Write for OS disks and ReadOnly for data disks hosted on Premium Storage. Lorsque la mise en cache du disque est activée sur les disques Premium Storage, les machines virtuelles à grande échelle peuvent atteindre des niveaux de performances extrêmement élevés qui dépassent les performances du disque sous-jacent.With disk caching enabled on the Premium Storage disks, the high scale VMs can achieve extremely high levels of performance that exceed the underlying disk performance.

Avertissement

La mise en cache du disque n’est pas prise en charge pour les disques 4 Tio et supérieurs.Disk Caching is not supported for disks 4 TiB and larger. Si plusieurs disques sont attachés à votre machine virtuelle, chaque disque d’une taille inférieure à 4 Tio prend en charge la mise en cache.If multiple disks are attached to your VM, each disk that is smaller than 4 TiB will support caching.

La modification du paramètre de cache d’un disque Azure détache et rattache le disque cible.Changing the cache setting of an Azure disk detaches and re-attaches the target disk. S’il s’agit du disque du système d’exploitation, la machine virtuelle redémarre.If it is the operating system disk, the VM is restarted. Arrêtez toutes les applications et services qui risquent d’être affectés par cette indisponibilité avant de modifier le paramètre de cache du disque.Stop all applications/services that might be affected by this disruption before changing the disk cache setting. Le non-respect de ces recommandations peut entraîner une altération des données.Not following those recommendations could lead to data corruption.

Pour en savoir plus sur le fonctionnement de BlobCache, reportez-vous à l’article du blog interne Azure Premium Storage .To learn more about how BlobCache works, refer to the Inside Azure Premium Storage blog post.

Il est important d’activer le cache sur le jeu de disques approprié.It is important to enable cache on the right set of disks. Le fait de devoir activer ou non la mise en cache du disque sur un disque premium dépendra du modèle de charge de travail que ce disque doit gérer.Whether you should enable disk caching on a premium disk or not will depend on the workload pattern that disk will be handling. Le tableau ci-dessous répertorie les paramètres de cache par défaut pour les disques du système d’exploitation et les disques de données.Table below shows the default cache settings for OS and Data disks.

Type de disqueDisk type Paramètre de cache par défautDefault cache setting
Disque de système d’exploitationOS disk Lecture/écritureReadWrite
Disque de donnéesData disk Lecture seuleReadOnly

Voici les paramètres de cache de disque recommandés pour les disques de données :Following are the recommended disk cache settings for data disks,

Paramètre de mise en cache du disqueDisk caching setting Conditions recommandées d’utilisation de ce paramètrerecommendation on when to use this setting
NoneNone Configurer le cache hôte sur cette option pour les disques en lecture seule et les disques gourmands en écriture.Configure host-cache as None for write-only and write-heavy disks.
Lecture seuleReadOnly Configurer le cache hôte en lecture seule pour les disques en lecture seule et les disques en lecture/écriture.Configure host-cache as ReadOnly for read-only and read-write disks.
Lecture/écritureReadWrite Configurer le cache hôte en lecture/écriture uniquement si votre application gère correctement l’écriture des données mises en cache sur les disques persistants lorsque cela est nécessaire.Configure host-cache as ReadWrite only if your application properly handles writing cached data to persistent disks when needed.

Lecture seuleReadOnly
En configurant une mise en cache en lecture seule sur des disques de données Premium Storage, vous pouvez obtenir une faible latence de lecture et obtenir de très hautes performances d’E/S et de débit en lecture pour votre application.By configuring ReadOnly caching on Premium Storage data disks, you can achieve low Read latency and get very high Read IOPS and Throughput for your application. Cela est dû à deux raisons :This is due two reasons,

  1. Les lectures effectuées à partir du cache, qui se trouvent sur la mémoire virtuelle et sur le SSD local, sont beaucoup plus rapides que les lectures effectuées à partir du disque de données, qui réside sur Azure Blob Storage.Reads performed from cache, which is on the VM memory and local SSD, are much faster than reads from the data disk, which is on the Azure blob storage.
  2. Premium Storage ne tient pas compte des lectures traitées à partir du cache pour le calcul du nombre d’E/S par seconde et du débit du disque.Premium Storage does not count the Reads served from cache, towards the disk IOPS and Throughput. Par conséquent, votre application est en mesure de délivrer de meilleures performances totales en termes d’E/S par seconde et de débit.Therefore, your application is able to achieve higher total IOPS and Throughput.

Lecture/écritureReadWrite
Par défaut, le cache en lecture/écriture est activé sur les disques du système d’exploitation.By default, the OS disks have ReadWrite caching enabled. Nous avons récemment ajouté la prise en charge de la mise en cache en lecture/écriture sur les données des disques.We have recently added support for ReadWrite caching on data disks as well. Si vous utilisez la mise en cache en lecture/écriture, vous devez disposer d’un moyen approprié d’écrire les données du cache sur des disques persistants.If you are using ReadWrite caching, you must have a proper way to write the data from cache to persistent disks. Par exemple, SQL Server gère lui-même l’écriture de données mises en cache sur les disques de stockage persistants.For example, SQL Server handles writing cached data to the persistent storage disks on its own. L’utilisation d’un cache en lecture/écriture avec une application qui ne gère pas la persistance des données requises peut entraîner des pertes de données en cas de panne de la machine virtuelle.Using ReadWrite cache with an application that does not handle persisting the required data can lead to data loss, if the VM crashes.

AucunNone
Actuellement, l’option Aucune n’est prise en charge que sur les disques de données.Currently, None is only supported on data disks. Elle n’est pas prise en charge sur les disques du système d’exploitation.It is not supported on OS disks. Si vous définissez l’option Aucun sur un disque de système d’exploitation, il est remplacé en interne et défini sur Lecture seule.If you set None on an OS disk it will override this internally and set it to ReadOnly.

Par exemple, vous pouvez appliquer ces instructions à une instance SQL Server exécutée sur Premium Storage de la manière suivante :As an example, you can apply these guidelines to SQL Server running on Premium Storage by doing the following,

  1. Configurez le cache en lecture seule sur les disques de stockage Premium qui hébergent des fichiers de données.Configure "ReadOnly" cache on premium storage disks hosting data files.
    a.a. Les lectures rapides du cache réduisent le temps de requête de SQL Server puisque les pages de données sont récupérées à partir du cache bien plus rapidement que lorsque l’opération s’effectue directement à partir des disques de données.The fast reads from cache lower the SQL Server query time since data pages are retrieved much faster from the cache compared to directly from the data disks.
    b.b. Le traitement des lectures à partir du cache signifie que les disques de données premium délivrent un débit supplémentaire.Serving reads from cache, means there is additional Throughput available from premium data disks. SQL Server peut utiliser ce débit supplémentaire pour la récupération d’un plus grand nombre de pages de données et d’autres opérations telles que la sauvegarde/restauration, les charges de traitement par lots et les reconstructions d’index.SQL Server can use this additional Throughput towards retrieving more data pages and other operations like backup/restore, batch loads, and index rebuilds.
  2. Choisissez l’option « Aucun » pour le cache sur les disques de stockage Premium qui hébergent des fichiers journaux.Configure "None" cache on premium storage disks hosting the log files.
    a.a. Les fichiers journaux ont principalement des opérations d’écriture intensives.Log files have primarily write-heavy operations. Ils ne bénéficient donc pas du cache en lecture seule.Therefore, they do not benefit from the ReadOnly cache.

Optimiser les performances sur les machines virtuelles LinuxOptimize performance on Linux VMs

Pour tous les disques ultra ou SSD Premium dont le paramètre de cache est ReadOnly ou None, vous devez désactiver les « barrières » lorsque vous montez le système de fichiers.For all premium SSDs or ultra disks with cache set to ReadOnly or None, you must disable "barriers" when you mount the file system. Ces barrières sont inutiles dans ce cas de figure, car les écritures sur les disques de stockage Premium sont pérennes avec ces paramètres de cache.You don't need barriers in this scenario because the writes to premium storage disks are durable for these cache settings. Lorsque la demande d’écriture se termine, les données sont stockées dans le magasin permanent.When the write request successfully finishes, data has been written to the persistent store. Utilisez l’une des méthodes suivantes pour désactiver les « barrières ».To disable "barriers," use one of the following methods. Choisissez celle qui correspond à votre système de fichiers :Choose the one for your file system:

  • Pour reiserFS, pour désactiver les barrières, utilisez l’option de montage barrier=none.For reiserFS, to disable barriers, use the barrier=none mount option. (Pour activer les barrières, utilisez barrier=flush.)(To enable barriers, use barrier=flush.)
  • Pour ext3/ext4, pour désactiver les barrières, utilisez l’option de montage barrier=0.For ext3/ext4, to disable barriers, use the barrier=0 mount option. (Pour activer les barrières, utilisez barrier=1.)(To enable barriers, use barrier=1.)
  • Pour XFS, pour désactiver les barrières, utilisez l’option de montage nobarrier.For XFS, to disable barriers, use the nobarrier mount option. (Pour activer les barrières, utilisez barrier.)(To enable barriers, use barrier.)
  • Pour les disques de stockage Premium avec une mise en cache définie sur ReadWrite, activez les barrières de durabilité de l’écriture.For premium storage disks with cache set to ReadWrite, enable barriers for write durability.
  • Pour conserver les étiquettes de volume après avoir redémarré la machine virtuelle, vous devez mettre à jour /etc/fstab avec les références identificateur unique universel (UUID) aux disques.For volume labels to persist after you restart the VM, you must update /etc/fstab with the universally unique identifier (UUID) references to the disks. Pour plus d’informations, consultez Ajouter un disque géré à une machine virtuelle Linux.For more information, see Add a managed disk to a Linux VM.

Les distributions Linux suivantes ont été validées pour les SSD Premium.The following Linux distributions have been validated for premium SSDs. Nous vous recommandons de mettre vos machines virtuelles au niveau de l’une de ces versions ou d’une version ultérieure pour améliorer les performances et la stabilité des SSD Premium.For better performance and stability with premium SSDs, we recommend that you upgrade your VMs to one of these versions or newer.

Certaines versions nécessitent également la dernière version 4.0 de Linux Integration Services (LIS) pour Azure.Some of the versions require the latest Linux Integration Services (LIS), v4.0, for Azure. Pour télécharger et installer une distribution, suivez le lien figurant dans le tableau suivant.To download and install a distribution, follow the link listed in the following table. Nous ajoutons des images à la liste à chaque validation.We add images to the list as we complete validation. Nos validations indiquent que les performances varient pour chaque image.Our validations show that performance varies for each image. Les performances dépendent des caractéristiques de la charge de travail et de vos paramètres d’image.Performance depends on workload characteristics and your image settings. Chaque image est optimisée pour des charges de travail particulières.Different images are tuned for different kinds of workloads.

DistributionDistribution VersionVersion Noyau pris en chargeSupported kernel DétailsDetails
UbuntuUbuntu 12.04 ou ultérieure12.04 or newer 3.2.0-75.110+3.2.0-75.110+  
UbuntuUbuntu 14.04 ou ultérieure14.04 or newer 3.13.0-44.73+3.13.0-44.73+  
DebianDebian 7.x, 8.x ou ultérieure7.x, 8.x or newer 3.16.7-ckt4-1+3.16.7-ckt4-1+  
SUSESUSE SLES 12 ou ultérieureSLES 12 or newer 3.12.36-38.1+3.12.36-38.1+  
SUSESUSE SLES 11 SP4 ou ultérieureSLES 11 SP4 or newer 3.0.101-0.63.1+3.0.101-0.63.1+  
CoreOSCoreOS 584.0.0 ou ultérieure584.0.0+ or newer 3.18.4+3.18.4+  
CentOSCentOS 6.5, 6.6, 6.7, 7.0 ou ultérieure6.5, 6.6, 6.7, 7.0, or newer   LIS4 requisLIS4 required
Consultez la remarque dans la section suivanteSee note in the next section
CentOSCentOS 7.1 ou ultérieure7.1+ or newer 3.10.0-229.1.2.el7+3.10.0-229.1.2.el7+ LIS4 recommandéLIS4 recommended
Consultez la remarque dans la section suivanteSee note in the next section
Red Hat Enterprise Linux (RHEL)Red Hat Enterprise Linux (RHEL) 6.8+, 7.2+ ou ultérieure6.8+, 7.2+, or newer    
OracleOracle 6.0+, 7.2+ ou ultérieure6.0+, 7.2+, or newer   UEK4 ou RHCKUEK4 or RHCK
OracleOracle 7.0-7.1 ou ultérieure7.0-7.1 or newer   UEK4 ou RHCK avec LIS4UEK4 or RHCK w/LIS4
OracleOracle 6.4-6.7 ou ultérieure6.4-6.7 or newer   UEK4 ou RHCK avec LIS4UEK4 or RHCK w/LIS4

Pilotes LIS pour Openlogic CentOSLIS drivers for OpenLogic CentOS

Si vous exécutez des machines virtuelles OpenLogic CentOS, exécutez la commande suivante pour installer les pilotes les plus récents :If you're running OpenLogic CentOS VMs, run the following command to install the latest drivers:

sudo yum remove hypervkvpd  ## (Might return an error if not installed. That's OK.)
sudo yum install microsoft-hyper-v
sudo reboot

Dans certains cas, la commande ci-dessus met également à niveau le noyau.In some cases the command above will upgrade the kernel as well. Si une mise à jour du noyau est nécessaire, vous devrez peut-être réexécuter les commandes ci-dessus après avoir redémarré pour installer complètement le package Microsoft-Hyper-v.If a kernel update is required then you may need to run the above commands again after rebooting to fully install the microsoft-hyper-v package.

Entrelacement de disquesDisk striping

Lorsqu’une machine virtuelle à grande échelle est connectée à plusieurs disques de stockage premium persistants, les disques peuvent être entrelacés ensemble pour agréger les E/S par seconde, la bande passante et la capacité de stockage.When a high scale VM is attached with several premium storage persistent disks, the disks can be striped together to aggregate their IOPs, bandwidth, and storage capacity.

Sous Windows, vous pouvez utiliser les espaces de stockage pour entrelacer les disques.On Windows, you can use Storage Spaces to stripe disks together. Vous devez configurer une seule colonne pour chaque disque dans un pool.You must configure one column for each disk in a pool. Dans le cas contraire, les performances globales du volume entrelacé peuvent être limitées, en raison d’une distribution inégale du trafic sur les disques.Otherwise, the overall performance of striped volume can be lower than expected, due to uneven distribution of traffic across the disks.

Important : À l’aide de l’IU du Gestionnaire de serveur, vous pouvez définir un nombre maximal de 8 colonnes au total pour un volume agrégé par bandes.Important: Using Server Manager UI, you can set the total number of columns up to 8 for a striped volume. Si vous souhaitez attacher plus de huit disques, utilisez PowerShell pour créer le volume.When attaching more than eight disks, use PowerShell to create the volume. PowerShell vous permet de définir un nombre de colonnes égal au nombre de disques.Using PowerShell, you can set the number of columns equal to the number of disks. Par exemple, s’il existe 16 disques dans un agrégat unique, spécifiez 16 colonnes dans le paramètre NumberOfColumns de l’applet de commande New-VirtualDisk.For example, if there are 16 disks in a single stripe set; specify 16 columns in the NumberOfColumns parameter of the New-VirtualDisk PowerShell cmdlet.

Sous Linux, utilisez l’utilitaire MDADM pour entrelacer les disques.On Linux, use the MDADM utility to stripe disks together. Pour obtenir des instructions détaillées sur l’entrelacement de disques sous Linux, reportez-vous à Configuration d’un RAID logiciel sous Linux.For detailed steps on striping disks on Linux refer to Configure Software RAID on Linux.

Taille de l’entrelacementStripe Size
La taille d’entrelacement constitue un facteur important dans la configuration de l’entrelacement de disques.An important configuration in disk striping is the stripe size. La taille d’entrelacement ou la taille de bloc représente la plus petite partie des données que l’application peut traiter sur un volume entrelacé.The stripe size or block size is the smallest chunk of data that application can address on a striped volume. La taille d’entrelacement que vous configurez varie selon le type d’application et le modèle de demande associé.The stripe size you configure depends on the type of application and its request pattern. Si vous choisissez une taille d’entrelacement incorrecte, vous risquez de rencontrer un défaut d’alignement des E/S, ce qui conduirait à une dégradation des performances de votre application.If you choose the wrong stripe size, it could lead to IO misalignment, which leads to degraded performance of your application.

Par exemple, si une demande d’E/S générée par votre application est supérieure à la taille d’entrelacement de disque, le système de stockage écrira au-delà des limites d’unité de bande sur plusieurs disques.For example, if an IO request generated by your application is bigger than the disk stripe size, the storage system writes it across stripe unit boundaries on more than one disk. Au moment d’accéder aux données, il devra effectuer une recherche sur plusieurs unités de bande pour exécuter la demande.When it is time to access that data, it will have to seek across more than one stripe units to complete the request. L’effet cumulatif de ce comportement peut entraîner une dégradation significative des performances.The cumulative effect of such behavior can lead to substantial performance degradation. En revanche, si la taille de la demande d’E/S est inférieure à la taille d’entrelacement, et si ces E/S sont aléatoires par nature, les demandes d’E/S peuvent s’ajouter sur le même disque et provoquer un goulot d’étranglement responsable d’une dégradation des performances d’E/S.On the other hand, if the IO request size is smaller than stripe size, and if it is random in nature, the IO requests may add up on the same disk causing a bottleneck and ultimately degrading the IO performance.

Selon le type de charge de travail que votre application exécute, choisissez une taille d’entrelacement appropriée.Depending on the type of workload your application is running, choose an appropriate stripe size. Pour les petites demandes d’E/S aléatoires, utilisez une plus petite taille d’entrelacement.For random small IO requests, use a smaller stripe size. Pour de grandes demandes d’E/S séquentielles, utilisez une plus grande taille d’entrelacement.Whereas for large sequential IO requests use a larger stripe size. Découvrez les tailles d’entrelacement recommandées pour l’application exécutée sur Premium Storage.Find out the stripe size recommendations for the application you will be running on Premium Storage. Pour SQL Server, configurez une taille d’entrelacement de 64 Ko pour les charges de travail OLTP et de 256 Ko pour les charges de travail d’entrepôt de données.For SQL Server, configure stripe size of 64 KB for OLTP workloads and 256 KB for data warehousing workloads. Pour en savoir plus, consultez Meilleures pratiques relatives aux performances de SQL Server dans Azure Virtual MachinesSee Performance best practices for SQL Server on Azure VMs to learn more.

Notes

vous pouvez entrelacer au maximum 32 disques de stockage premium sur une machine virtuelle DS et 64 disques de stockage premium sur une machine virtuelle GS.You can stripe together a maximum of 32 premium storage disks on a DS series VM and 64 premium storage disks on a GS series VM.

MultithreadingMulti-threading

Azure a conçu une plate-forme Premium Storage hautement parallèle.Azure has designed Premium Storage platform to be massively parallel. Par conséquent, une application multithread délivre de bien meilleures performances qu’une application à thread unique.Therefore, a multi-threaded application achieves much higher performance than a single-threaded application. Une application multithread répartit ses tâches sur plusieurs threads et augmente l’efficacité de son exécution en utilisant au maximum les ressources de machine virtuelle et de disque.A multi-threaded application splits up its tasks across multiple threads and increases efficiency of its execution by utilizing the VM and disk resources to the maximum.

Par exemple, si votre application s’exécute sur une machine virtuelle monocœur utilisant deux threads, le processeur peut basculer entre les deux threads pour gagner en efficacité.For example, if your application is running on a single core VM using two threads, the CPU can switch between the two threads to achieve efficiency. En attendant l’exécution d’un thread sur une E/S de disque, le processeur peut basculer vers l’autre thread.While one thread is waiting on a disk IO to complete, the CPU can switch to the other thread. De cette façon, deux threads peuvent accomplir bien plus qu’un seul thread.In this way, two threads can accomplish more than a single thread would. Si la machine virtuelle possède plusieurs cœurs, elle réduit davantage le temps d’exécution dans la mesure où chaque cœur peut exécuter des tâches en parallèle.If the VM has more than one core, it further decreases running time since each core can execute tasks in parallel.

Vous n’êtes peut-être pas en mesure de modifier la façon dont une application du commerce implémente un seul thread ou plusieurs threads.You may not be able to change the way an off-the-shelf application implements single threading or multi-threading. Par exemple, SQL Server est capable de gérer plusieurs processeurs et plusieurs nœuds.For example, SQL Server is capable of handling multi-CPU and multi-core. SQL Server détermine cependant dans quelles conditions il utilisera un ou plusieurs threads pour traiter une requête.However, SQL Server decides under what conditions it will leverage one or more threads to process a query. Il peut exécuter des requêtes et créer des index à l’aide du traitement multithread.It can run queries and build indexes using multi-threading. Dans le cas d’une requête impliquant une fusion de tables volumineuses et un tri des données avant le renvoi des résultats à l’utilisateur, SQL Server utilisera probablement plusieurs threads.For a query that involves joining large tables and sorting data before returning to the user, SQL Server will likely use multiple threads. Toutefois, un utilisateur ne peut pas décider si SQL Server exécutera une requête à l’aide d’un ou plusieurs threads.However, a user cannot control whether SQL Server executes a query using a single thread or multiple threads.

Certains paramètres de configuration peuvent être modifiés pour influencer ce traitement multithread ou parallèle d’une application.There are configuration settings that you can alter to influence this multi-threading or parallel processing of an application. Dans le cas de SQL Server, par exemple, il s’agit de la configuration maximale de degré de parallélisme.For example, in case of SQL Server it is the maximum Degree of Parallelism configuration. Ce paramètre appelé MAXDOP permet de configurer le nombre maximal de processeurs que SQL Server peut utiliser lors d’un de traitement parallèle.This setting called MAXDOP, allows you to configure the maximum number of processors SQL Server can use when parallel processing. Vous pouvez configurer MAXDOP pour des requêtes individuelles ou pour des opérations d’index.You can configure MAXDOP for individual queries or index operations. Cela vous sera utile si vous souhaitez équilibrer les ressources de votre système pour une application stratégique en termes de performances.This is beneficial when you want to balance resources of your system for a performance critical application.

Supposons par exemple que votre application basée sur SQL Server exécute simultanément une grande requête et une opération d’index.For example, say your application using SQL Server is executing a large query and an index operation at the same time. Imaginons que vous souhaitiez que l’opération d’index soit plus performante que la requête volumineuse.Let us assume that you wanted the index operation to be more performant compared to the large query. Dans ce cas, vous pouvez spécifier une valeur MAXDOP de l’opération d’index supérieure à la valeur MAXDOP de la requête.In such a case, you can set MAXDOP value of the index operation to be higher than the MAXDOP value for the query. SQL Server dispose ainsi d’un plus grand nombre de processeurs exploitables pour l’opération d’index par rapport au nombre de processeurs qu’il peut consacrer à la requête volumineuse.This way, SQL Server has more number of processors that it can leverage for the index operation compared to the number of processors it can dedicate to the large query. N’oubliez pas que vous n’avez aucun contrôle sur le nombre de threads que SQL Server utilisera pour chaque opération.Remember, you do not control the number of threads SQL Server will use for each operation. Vous pouvez contrôler le nombre maximal de processeurs dédiés au traitement multithread.You can control the maximum number of processors being dedicated for multi-threading.

En savoir plus sur Degrés de parallélisme dans SQL Server.Learn more about Degrees of Parallelism in SQL Server. Découvrez les paramètres qui influencent le traitement multithread dans votre application et leurs configurations pour optimiser les performances.Find out such settings that influence multi-threading in your application and their configurations to optimize performance.

Profondeur de file d’attenteQueue depth

La profondeur, longueur ou taille de file d’attente correspond au nombre de demandes d’E/S en attente dans le système.The queue depth or queue length or queue size is the number of pending IO requests in the system. La valeur de profondeur de file d’attente détermine le nombre d’opérations d’E/S que votre application peut aligner et qui seront traitées par les disques de stockage.The value of queue depth determines how many IO operations your application can line up, which the storage disks will be processing. Elle affecte les trois indicateurs de performance que nous avons abordés dans cet article, à savoir le nombre d’IOPS, le débit et la latence.It affects all the three application performance indicators that we discussed in this article viz., IOPS, throughput, and latency.

La profondeur de file d’attente et le traitement multithread sont étroitement liés.Queue Depth and multi-threading are closely related. La valeur de profondeur de file d’attente indique dans quelle mesure l’application peut prendre en charge un traitement multithread.The Queue Depth value indicates how much multi-threading can be achieved by the application. Si la profondeur de file d’attente est importante, l’application peut exécuter davantage d’opérations simultanément, autrement dit un meilleur traitement multithread.If the Queue Depth is large, application can execute more operations concurrently, in other words, more multi-threading. Si la profondeur de file d’attente est petite, même si l’application est de type multithread, le nombre de demandes alignées sera insuffisant pour permettre une exécution simultanée.If the Queue Depth is small, even though application is multi-threaded, it will not have enough requests lined up for concurrent execution.

En règle générale, les applications du commerce ne vous permettent pas de modifier la profondeur de la file d’attente, car un paramétrage incorrect peut faire plus de mal que de bien.Typically, off the shelf applications do not allow you to change the queue depth, because if set incorrectly it will do more harm than good. Les applications définissent la valeur de la profondeur de file d’attente appropriée pour obtenir des performances optimales.Applications will set the right value of queue depth to get the optimal performance. Il est toutefois important de comprendre ce concept afin de pouvoir résoudre les problèmes de performances que vous pouvez rencontrer avec votre application.However, it is important to understand this concept so that you can troubleshoot performance issues with your application. Vous pouvez également observer les effets de la profondeur de file d’attente en exécutant les outils de benchmarking sur votre système.You can also observe the effects of queue depth by running benchmarking tools on your system.

Certaines applications fournissent des paramètres qui influencent la profondeur de file d’attente.Some applications provide settings to influence the Queue Depth. Le paramètre MAXDOP (degré maximal de parallélisme) dans SQL Server, par exemple, est expliqué dans la section précédente.For example, the MAXDOP (maximum degree of parallelism) setting in SQL Server explained in previous section. MAXDOP offre un moyen d’influencer la profondeur de file d’attente et le traitement multithread, sans pour autant modifier directement la valeur de profondeur de file d’attente de SQL Server.MAXDOP is a way to influence Queue Depth and multi-threading, although it does not directly change the Queue Depth value of SQL Server.

Grande profondeur de file d’attenteHigh queue depth
Une grande profondeur de file d’attente permet d’aligner davantage d’opérations sur le disque.A high queue depth lines up more operations on the disk. Le disque peut anticiper la prochaine demande placée dans sa file d’attente.The disk knows the next request in its queue ahead of time. Il peut ainsi planifier les opérations à l’avance et les traiter dans un ordre optimal.Consequently, the disk can schedule operations ahead of time and process them in an optimal sequence. Étant donné que l’application envoie davantage de requêtes sur le disque, ce dernier peut traiter un plus grand nombre d’E/S parallèles.Since the application is sending more requests to the disk, the disk can process more parallel IOs. Au final, l’application sera en mesure d’atteindre un taux supérieur d’E/S par seconde.Ultimately, the application will be able to achieve higher IOPS. Puisque l’application traite davantage de demandes, le débit total de l’application augmente également.Since application is processing more requests, the total Throughput of the application also increases.

En général, une application peut atteindre un débit maximal avec 8-16 E/S en attente par disque connecté.Typically, an application can achieve maximum Throughput with 8-16+ outstanding IOs per attached disk. Si la profondeur de file d’attente est de 1, l’application n’envoie (push) pas suffisamment d’E/S sur le système et traite moins de données pendant une période donnée.If a queue depth is one, application is not pushing enough IOs to the system, and it will process less amount of in a given period. En d’autres termes, elle atteindra un débit inférieur.In other words, less Throughput.

Par exemple, dans SQL Server, une valeur MAXDOP de 4 pour une requête indique à SQL Server qu’il peut utiliser jusqu’à quatre cœurs pour exécuter la requête.For example, in SQL Server, setting the MAXDOP value for a query to "4" informs SQL Server that it can use up to four cores to execute the query. SQL Server déterminera la meilleure valeur de profondeur de file d’attente ainsi que le nombre de cœurs à utiliser pour l’exécution de la requête.SQL Server will determine what is best queue depth value and the number of cores for the query execution.

Profondeur de file d’attente optimaleOptimal queue depth
Une valeur de profondeur de file d’attente très élevée présente aussi des inconvénients.Very high queue depth value also has its drawbacks. Si la valeur de profondeur de file d’attente est trop importante, l’application tentera de générer un taux d’E/S par seconde très élevé.If queue depth value is too high, the application will try to drive very high IOPS. À moins que l’application repose sur des disques persistants associés à un nombre suffisant d’E/S par seconde, cela peut affecter sérieusement les latences d’application.Unless application has persistent disks with sufficient provisioned IOPS, this can negatively affect application latencies. La formule suivante montre la relation entre les IOPS, la latence et la profondeur de file d’attente.Following formula shows the relationship between IOPS, latency, and queue depth.
Diagramme montrant l’équation IOPS et latence correspondant à la profondeur de file d’attente.A diagram showing the equation I O P S times latency equals Queue Depth.

Vous ne devez pas configurer la profondeur de file d’attente à une valeur élevée, mais plutôt à une valeur optimale, qui peut générer suffisamment d’E/S par seconde pour l’application sans affecter les latences.You should not configure Queue Depth to any high value, but to an optimal value, which can deliver enough IOPS for the application without affecting latencies. Par exemple, si la latence de l’application doit être de 1 milliseconde, la profondeur de file d’attente requise pour atteindre 5 000 E/S par seconde sera : PF = 5 000 x 0,001 = 5.For example, if the application latency needs to be 1 millisecond, the Queue Depth required to achieve 5,000 IOPS is, QD = 5000 x 0.001 = 5.

Profondeur de file d’attente pour le volume entrelacéQueue Depth for Striped Volume
Pour un volume entrelacé, conservez une profondeur de file d’attente suffisamment élevée de sorte que chaque disque dispose individuellement d’un pic de profondeur de file d’attente.For a striped volume, maintain a high enough queue depth such that, every disk has a peak queue depth individually. Prenons l’exemple d’une application qui envoie (push) une profondeur de file d’attente de 2 dans un scénario d’entrelacement à quatre disques.For example, consider an application that pushes a queue depth of 2 and there are four disks in the stripe. Les deux demandes d’E/S seront transmises à deux disques et les deux disques restants seront inactifs.The two IO requests will go to two disks and remaining two disks will be idle. Vous devez par conséquent configurer la profondeur de file d’attente afin que tous les disques puissent être occupés.Therefore, configure the queue depth such that all the disks can be busy. La formule ci-dessous montre comment déterminer la profondeur de file d’attente des volumes entrelacés.Formula below shows how to determine the queue depth of striped volumes.
Diagramme montrant l’équation Q D par disque et nombre de colonnes par volume correspondant à Q D du volume agrégé par bandes.A diagram showing the equation Q D per Disk times number of columns per volume equals Q D of Striped Volume.

LimitationThrottling

Azure Premium Storage configure la valeur spécifiée d’E/S par seconde et de débit en fonction des tailles de machine virtuelle et des tailles de disque que vous choisissez.Azure Premium Storage provisions specified number of IOPS and Throughput depending on the VM sizes and disk sizes you choose. Chaque fois que votre application tentera de dépasser les limites de ce que la machine virtuelle ou le disque peut gérer, Premium Storage lui imposera une limitation.Anytime your application tries to drive IOPS or Throughput above these limits of what the VM or disk can handle, Premium Storage will throttle it. Cette limitation se manifeste sous la forme d’une dégradation des performances de votre application,This manifests in the form of degraded performance in your application. à savoir une latence plus élevée, un débit réduit ou un nombre inférieur d’IOPS.This can mean higher latency, lower Throughput, or lower IOPS. Sans cette limitation, votre application risquerait de planter en demandant plus que ses ressources ne lui permettent d’effectuer.If Premium Storage does not throttle, your application could completely fail by exceeding what its resources are capable of achieving. Par conséquent, pour éviter les problèmes de performances associés à une limitation, veillez à toujours fournir suffisamment de ressources pour votre application.So, to avoid performance issues due to throttling, always provision sufficient resources for your application. Tenez compte des explications données ci-dessus dans les sections relatives aux tailles de disque et aux tailles de machine virtuelle.Take into consideration what we discussed in the VM sizes and Disk sizes sections above. Le benchmarking offre le meilleur moyen de déterminer les ressources dont vous aurez besoin pour héberger votre application.Benchmarking is the best way to figure out what resources you will need to host your application.

Étapes suivantesNext steps

Si vous souhaitez évaluer votre disque, consultez notre article sur le Benchmarking d’un disque.If you are looking to benchmark your disk, see our article on Benchmarking a disk.

En savoir plus sur les types de disque disponibles : Sélectionner un type de disqueLearn more about the available disk types: Select a disk type

Pour les utilisateurs de SQL Server, consultez les articles relatifs aux meilleures pratiques de performances de SQL Server :For SQL Server users, read articles on Performance Best Practices for SQL Server: