Quest-ce quun Cache ?

Lorsque vous demandez des données à partir de n'importe quelle source, il y a toujours un certain retard. Le ping vers les serveurs Web est mesuré en millisecondes, le temps d'accès au stockage peut avoir des latences en microsecondes tandis que la latence de la RAM est mesurée en cycles d'horloge CPU. Bien sûr, ces types de vitesses auraient été impensables il y a seulement quelques décennies, mais à l'heure actuelle, elles ne sont jamais assez rapides. La vitesse d'accès est régulièrement une forme de goulot d'étranglement dans les performances. L'une des façons de résoudre ce problème est la mise en cache.

La mise en cache est un processus de stockage d'une copie temporaire d'une ressource de manière à ce qu'elle soit accessible plus rapidement qu'elle ne pourrait l'être normalement. Il existe une vaste gamme d'implémentations à la fois logicielles et matérielles. Les caches peuvent agir comme des caches de lecture, des caches d'écriture ou les deux.

Lire les caches

Dans un cache de lecture, les données qui ont été demandées précédemment sont stockées dans un cache pour un accès plus rapide. Dans certains scénarios, le cache peut même être chargé de manière préventive avec des données permettant à la première demande d'être servie à partir du cache plutôt que simplement les demandes suivantes.

Le cache de lecture que vous connaissez le plus probablement est le cache du navigateur. Ici, le navigateur stocke une copie locale des ressources demandées. Cela signifie que si et quand la page Web est rechargée ou une page similaire est chargée qui utilise une grande partie du même contenu, ce contenu peut être servi à partir du cache plutôt que du serveur Web. Non seulement cela signifie que la page Web peut se charger plus rapidement, mais cela réduit également la charge sur le serveur Web et réduit la quantité de données que l'utilisateur doit télécharger, ce qui peut être important sur les connexions mesurées.

La RAM elle-même agit également comme un cache de lecture pour les données du disque dur. Dans ce cas, les données d'un programme en cours d'exécution sont chargées de manière préventive dans la RAM afin que le processeur puisse y accéder plus rapidement. Les données de la RAM sont ensuite mises en cache dans le cache du processeur, bien que le processus soit beaucoup plus complexe car le cache du processeur est mesuré en mégaoctets et non en gigaoctets.

Caches en écriture

Un cache d'écriture est un cache qui peut absorber les données écrites sur un périphérique plus lent. Un exemple courant de ceci serait le cache SLC dans les SSD modernes. Ce cache ne permet pas de lire les données plus rapidement, cependant, il est beaucoup plus rapide d'écrire que d'écrire sur le flash TLC ou QLC qui constitue le reste du SSD. Le cache SLC peut absorber les opérations d'écriture à grande vitesse, puis décharger ces données dès que possible sur le flash TLC qui offre une bien meilleure densité de stockage, mais est également beaucoup plus lent à écrire. L'utilisation de la mémoire flash de cette manière l'optimise à la fois pour des vitesses d'écriture rapides et une densité de stockage élevée.

Caches hybrides

Il existe de nombreuses façons de gérer les caches qui peuvent leur permettre d'agir à la fois comme cache de lecture et d'écriture. Chacune de ces méthodes gère les opérations d'écriture différemment et présente des avantages et des inconvénients. Les trois options sont écriture autour, écriture immédiate et écriture différée. Un cache en écriture ignore entièrement le cache lors de l'écriture, le cache en écriture directe écrit dans le cache mais ne considère l'opération terminée que lorsqu'elle a été écrite dans le stockage. Le cache de réécriture écrit dans le cache, puis considère l'opération comme terminée, en s'appuyant sur le cache pour le transférer vers le stockage si nécessaire.

L'écriture indirecte peut être utile si vous vous attendez à un grand volume d'écritures, car elle minimise l'attrition du cache. Cela signifie cependant qu'une opération qui lit ensuite l'une de ces données écrites sera confrontée à au moins un échec de cache la première fois. Les caches à écriture immédiate mettent immédiatement en cache les opérations d'écriture, ce qui signifie que le résultat peut être servi à partir du cache la première fois qu'il est demandé. Cependant, pour être considérée comme complète, une opération d'écriture doit également écrire les données sur le disque, ce qui ajoute de la latence. Un cache à écriture différée présente le même avantage qu'une écriture immédiate, permettant aux données écrites d'être immédiatement servies à partir du cache. Cependant, il ne nécessite pas d'opérations d'écriture pour écrire sur le disque pour être considéré comme terminé. Cela réduit la latence d'écriture, mais s'accompagne d'un risque de perte de données si le cache est volatil et qu'il ne termine pas l'écriture des données dans le stockage avant la coupure de courant.

Comment supprimer des données du cache ?

L'un des facteurs limitants de tout cache est sa capacité. Un grand cache prend beaucoup de temps à rechercher, annulant une bonne partie de l'avantage d'utiliser un cache en premier lieu. Les technologies de mémoire utilisées pour la mise en cache ont également tendance à être plus chères que la mémoire à partir de laquelle elles sont mises en cache. Si ce n'était pas le cas, il est probable que ce niveau de mémoire aurait changé de technologie de mémoire pour améliorer les performances. Ces deux facteurs signifient que les caches ont tendance à être relativement petits, en particulier par rapport au support de stockage à partir duquel ils sont mis en cache. La RAM a moins de capacité que le stockage et le cache CPU a moins de capacité que la RAM. Le cache SLC a moins de capacité que la mémoire TLC.

Tout cela signifie qu'il est souvent nécessaire de faire sortir les données du cache pour libérer de l'espace pour les nouvelles données qui doivent être mises en cache. Il existe une gamme d'approches différentes à cet égard. "Le moins fréquemment utilisé", préfère supprimer les entrées de cache qui ont le plus petit nombre d'accès. Cela peut être utile pour prédire quelles entrées auront le moins d'effet sur les futurs échecs de cache, mais compterait également les entrées très récemment ajoutées comme ayant un faible nombre d'accès, ce qui peut entraîner une rotation du cache.

"Le moins récemment utilisé" préfère supprimer les entrées de cache qui n'ont pas été utilisées depuis un certain temps. Cela suppose qu'ils ne sont pas utilisés actuellement, mais ne prend pas en compte s'ils ont été fortement utilisés il y a quelque temps. "Le plus récemment utilisé" préfère supprimer les entrées de cache les plus récemment utilisées, en supposant qu'elles ont été utilisées et qu'elles n'auront pas besoin d'être réutilisées. La meilleure approche est généralement une combinaison des trois, informée par les statistiques d'utilisation.

Informations obsolètes et risques de sécurité

Le principal risque des caches est que les informations qu'ils contiennent peuvent devenir obsolètes. Une entrée de cache est considérée comme obsolète lorsque les données d'origine ont été mises à jour, laissant l'entrée de cache obsolète. Il est important de vérifier régulièrement que la copie en direct diffusée correspond toujours à la copie en cache.

Dans les sites Web en particulier, il est également extrêmement important d'identifier quelles données peuvent et ne peuvent pas être mises en cache. Par exemple, il est parfaitement acceptable qu'un gros fichier JavaScript immuable soit mis en cache. Cela évite à l'utilisateur de le télécharger à chaque fois et peut même profiter aux autres utilisateurs servis par le même cache. Cependant, vous ne pouvez pas mettre en cache les données spécifiques à la session. Imaginez ce qui se passerait si vous naviguiez vers une application de messagerie tout en étant connecté en tant que vous-même, pour constater que vous receviez une version en cache des messages d'un autre utilisateur. Heureusement, les serveurs Web peuvent spécifier quelles ressources peuvent et ne peuvent pas être mises en cache et ces problèmes sont généralement bien connus, il y a donc peu de problèmes comme celui-ci.

Conclusion

Un cache est une partie de la mémoire qui peut stocker certaines données récemment utilisées dans une méthode de stockage dont l'accès est plus rapide qu'il ne le serait pour terminer à nouveau le processus d'accès aux données normal. Un cache a généralement une capacité limitée, ce qui signifie qu'il doit supprimer les entrées une fois qu'il est plein. Les caches sont généralement transparents pour l'utilisateur, ce qui signifie que la latence est la seule indication que le résultat a été servi via un cache.



Leave a Comment

Comment cloner un disque dur

Comment cloner un disque dur

À l’ère numérique moderne, où les données constituent un atout précieux, le clonage d’un disque dur sous Windows peut être un processus crucial pour beaucoup. Ce guide complet

Comment réparer le pilote WUDFRd qui n’a pas pu se charger sous Windows 10 ?

Comment réparer le pilote WUDFRd qui n’a pas pu se charger sous Windows 10 ?

Êtes-vous confronté au message d'erreur lors du démarrage de votre ordinateur indiquant que le pilote WUDFRd n'a pas pu se charger sur votre ordinateur ?

Comment réparer le code derreur 0x0003 de NVIDIA GeForce Experience

Comment réparer le code derreur 0x0003 de NVIDIA GeForce Experience

Rencontrez-vous le code d’erreur 0x0003 de l’expérience NVIDIA GeForce sur votre bureau ? Si oui, lisez le blog pour savoir comment corriger cette erreur rapidement et facilement.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Comment supprimer un GPU dun PC Windows en 2023

Comment supprimer un GPU dun PC Windows en 2023

Avez-vous besoin de retirer le GPU de votre PC ? Rejoignez-moi pour expliquer comment supprimer un GPU de votre PC dans ce guide étape par étape.

Comment installer un SSD NVMe sur un ordinateur de bureau et un ordinateur portable

Comment installer un SSD NVMe sur un ordinateur de bureau et un ordinateur portable

Vous avez acheté un nouveau SSD NVMe M.2 mais vous ne savez pas comment l'installer ? Lisez la suite pour savoir comment installer un SSD NVMe sur un ordinateur portable ou un ordinateur de bureau.

Quest-ce quune bombe logique ?

Quest-ce quune bombe logique ?

Une bombe logique est un incident de sécurité où un attaquant met en place une action différée. Continuez à lire pour en savoir plus.

Quest-ce que Stuxnet ?

Quest-ce que Stuxnet ?

Stuxnet était un ver auto-propagé. Il s'agissait de la première utilisation d'une cyber-arme et du premier malware.

Quest-ce quun hacker éthique ?

Quest-ce quun hacker éthique ?

Un hacker éthique est un hacker qui agit dans les limites de la loi. Continuez à lire pour en savoir plus sur le sujet.

Quest-ce que le chiffrement symétrique ?

Quest-ce que le chiffrement symétrique ?

Il existe de nombreuses parties différentes de la cryptographie. Si vous souhaitez chiffrer certaines données, vous pouvez utiliser deux types d'algorithmes : symétrique