Quelle écriture a raison? Un regard sur les méthodes de mise en cache d'E / S

Auteur: Laura McKinney
Date De Création: 1 Avril 2021
Date De Mise À Jour: 25 Juin 2024
Anonim
Quelle écriture a raison? Un regard sur les méthodes de mise en cache d'E / S - La Technologie
Quelle écriture a raison? Un regard sur les méthodes de mise en cache d'E / S - La Technologie

Contenu


Source: Kgtoh / Dreamstime.com

À emporter:

La vitesse des applications dépend en grande partie de la vitesse des E / S du cache. Ici, nous comparons différentes méthodes d'E / S de cache.

Les performances des applications reposent sur la rapidité - rapidité pour répondre aux demandes de lecture et d'écriture que vos applications exigent de votre infrastructure. Le stockage est responsable de la vitesse de renvoi des demandes d'E / S (entrée / sortie), et la méthode choisie pour valider les écritures et livrer les lectures a un impact profond sur les performances des applications. Une méthode courante dans l’industrie actuelle consiste à utiliser des disques SSD pour la mise en cache sur des systèmes traditionnels de stockage sur disque en rotation, des baies hybrides ou des baies 100% Flash. La plupart des solutions de mise en cache ont accéléré les lectures pour les applications, mais la vraie question reste la suivante: «Quelle écriture est la bonne?


Voyons pourquoi l’optimisation de l’écriture affecte les performances de votre application de manière si radicale. Ecrire E / S implique qu'il s'agit de nouvelles données non écrites sur votre stockage sous-jacent. Dans le stockage SAN traditionnel, par exemple, les écritures sont écrites directement sur le stockage sous-jacent, puis renvoyées à l'application. Avec des applications qui écrivent constamment de nouvelles données, principalement des applications de base de données volumineuses (SQL, etc.), les disques en rotation traditionnels ne peuvent pas suivre. La mise en cache sur SSD est devenue une solution permettant d'écrire localement et de mettre en cache les écritures en fonction de la fréquence de la demande de l'application; Cependant, il existe plusieurs méthodes de relation entre le cache en écriture et le stockage sous-jacent qui entraînent une énorme différence de performances.


Ce sont les 3 formes d'écriture I / O:

  1. Écriture (autour de la cache)
  2. Write Through (à travers le cache)
  3. Ecriture en retour (depuis le cache)

Les trois formes présentent des avantages différents qui sont principalement basés sur le type de données en cours d’écriture: séquentiel ou aléatoire. Les E / S séquentielles sont les plus optimisées par le disque sous-jacent (fichiers ou flux vidéo par exemple), alors que les E / S aléatoires sont optimisées par le cache. La plupart des appliances de mise en cache ne disposent pas de l'intelligence dynamique nécessaire pour modifier la forme de la technologie d'écriture en fonction du type de données. Comprenons la différence entre les trois formes d’écriture d’E / S.

Écrire autour

L'écriture indirecte, également appelée mode de mise en cache en lecture seule, permet uniquement de libérer de l'espace pour les lectures en cache. Les E / S entrantes ne parviennent jamais dans la mémoire cache. Les E / S sont écrites directement dans le stockage permanent sans mettre en cache aucune donnée.

Quel pourrait être l’avantage du cache s’il n’est pas utilisé? Cela permet d'éviter de surcharger le cache avec des E / S d'écriture qui ne seront pas relues par la suite, mais qui présentent l'inconvénient qu'une demande de lecture de données récemment écrites créera un «cache cache» et devra être lue à partir d'un stockage en masse plus lent. éprouvez une latence plus élevée. Si votre application est transactionnelle, à l'instar de la plupart des applications critiques, la vitesse de l'application ralentit et les files d'attente d'E / S se multiplient. Essentiellement, la valeur de ce mode serait pour des cas d'utilisation rares car il prend du temps, est lent et non performant.

Écriture au travers

Cette méthode est couramment utilisée dans les solutions de mise en cache et de stockage hybride aujourd'hui. L'écriture directe est appelée mode de mise en cache de lecture, ce qui signifie que toutes les données sont écrites simultanément dans la mémoire cache et dans la mémoire de stockage sous-jacente. L’écriture est UNIQUEMENT considérée comme terminée une fois qu’elle a été écrite dans votre stockage. Ça a l'air plutôt sûr… mais il y a un inconvénient en matière de vitesse.

Voici le problème: chaque opération d’écriture est effectuée deux fois, dans le cache puis dans le stockage permanent. Avant que les applications puissent continuer, le stockage permanent doit renvoyer la validation d'E / S au cache, puis aux applications. Cette méthode est généralement implémentée pour la résilience en cas de défaillance et pour éviter de mettre en œuvre une stratégie de basculement ou haute disponibilité avec cache, car les données résident aux deux emplacements. Toutefois, l'écriture différée entraîne une latence car la validation des entrées / sorties est déterminée par la vitesse du stockage permanent, ce qui ne correspond pas aux vitesses de la CPU et du réseau. Vous êtes seulement aussi rapide que votre composant le plus lent et Write-Through peut gêner considérablement la vitesse des applications.

Pas de bugs, pas de stress - Votre guide étape par étape pour créer un logiciel qui change la vie sans vous détruire

Vous ne pouvez pas améliorer vos compétences en programmation lorsque personne ne se soucie de la qualité des logiciels.

Réécriture

L'écriture différée améliore les résultats du système en termes de rapidité - car le système n'a pas à attendre que les écritures soient stockées dans le stockage sous-jacent.

Lorsque les données doivent être écrites, Write-Back les place dans la mémoire cache et les conserve pour les écrire ultérieurement sur le disque de stockage.

Cela résout beaucoup de problèmes de latence, car le système n’a pas à attendre ces écritures profondes.

Avec le support approprié, Write-Back peut être la meilleure méthode pour la mise en cache multi-étapes. Cela est utile lorsque le cache contient de grandes quantités de mémoire (c'est-à-dire une mémoire mesurée en téraoctets et non en gigaoctets) afin de gérer de grands volumes d'activité. Les systèmes sophistiqués auront également besoin de plusieurs disques SSD, ce qui peut augmenter les coûts. Il est extrêmement important d’envisager des scénarios tels que la panne de courant ou d’autres situations dans lesquelles des données critiques peuvent être perdues. Mais avec la bonne «protection de cache», Write-Back peut vraiment accélérer une architecture avec peu d'inconvénients. Par exemple, les systèmes Write-Back peuvent utiliser des conceptions RAID ou redondantes pour protéger les données.

Des systèmes encore plus élaborés aideront le cache et le réseau SAN ou le disque de stockage sous-jacent à fonctionner «au besoin», en déléguant des écritures au stockage profond ou au cache en fonction de la charge de travail du disque.

La philosophie de conception de Write-Back est celle qui reflète la résolution de problèmes que les systèmes de traitement de données avancés d’aujourd’hui apportent aux tâches les plus ardues. En créant une architecture plus complexe et en utilisant un cache de manière complexe, l'écriture différée élimine les problèmes de latence. Bien qu'elle puisse nécessiter davantage de temps système, elle permet une meilleure croissance du système et réduit les problèmes de croissance.