Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Qu’est-ce qu’un cache (en informatique)

La mise en cache et l’utilisation de cache par les systèmes est très courant.
Il est donc important de connaître le principe de cache, son utilisé et son fonctionnement global.

Dans ce tutoriel, nous allons apprendre ce qu’est la mémoire cache avec quelques exemples d’utilisations.
Enfin d’article, vous trouverez les différences avec un tampon mémoire (buffer en anglais).

Qu'est-ce qu'un cache (en informatique)

Qu’est-ce qu’un cache en informatique

La mise en cache est le processus consistant à stocker temporairement une copie d’une ressource donnée afin que les demandes ultérieures de cette même ressource soient traitées plus rapidement.

La mise en cache sur disque est avantageuse car les données mises en cache sur le disque dur ne sont pas perdues en cas de panne du système. Cependant, l’accès aux données dans la mise en cache sur disque est plus lent que dans la mise en cache en mémoire.

Un cache a essentiellement deux buts :

  • Gagner en performances. Au lieu de regénérer les données, les données sont déjà disponibles dans le cache. Il suffit de les demander au cache pour les délivrer
  • Soulager la base de données, l’utilisation réseau ou CPU. Le fait que les données soient déjà disponibles évite de devoir les redemander. Au final, le cache permet d’économiser des ressources systèmes et matériel

Il existe différents type de cache.
Par exemple le cache matériel, que l’on peut trouver sous forme de mémoire vive dynamique (DRAM) dans le processeur d’un ordinateur.
On peut aussi en trouver dans les disques dur HDD, sous la forme de cache disque, qui sert plutôt de mémoire tampon (Buffer memory).

Le système d’exploitation ou un programme peut créer une mémoire cache en utilisant la mémoire RAM (mémoire vive statique (SRAM)).

Quelques exemples de cache

Cache internet des navigateurs et proxy

Le cache des navigateurs internet est certainement celui le plus connu.
Le principe est simple, il s’agit de stocker sur l’appareil les morceaux des sites internet visités (images, CSS, HTML, etc).
Lorsque l’utilisateur recharge la page internet, une partie est prise, cela évite de redemander au serveur ces portions.
Cela évite de consommer le réseau et sur les connexions lentes aident à accélérer le chargement des pages internet.

Cache internet des navigateurs

Les proxy ont aussi un cache pour un principe totalement identique.
Dans une entreprise avec des centaines/milliers d’appareils, recharge une page internet depuis le cache du proxy permet d’économiser la bande passante de la connexion internet.

Cache proxy

Serveurs WEB ou PHP

Les serveurs WEB utilisent aussi un cache qui évite de “reconstruire” la page internet et interroger le serveur PHP ou la base de données.
Lorsqu’un appareil demande à consulter la ressources, le serveur WEB ou le serveur PHP fournit le cache.
Cela permet d’économiser énormément les ressources de calcul (CPU, etc) et permet aux serveurs WEB de répondre à des millions de requêtes en quelques secondes.

Le cache d'un serveur WEB

On peut aussi configurer NGINX, Varnish comme serveur de cache que l’on place entre le client et le serveur final (backend) en tant que proxy inversé.
Enfin les solutions delivery networks (CDNs) peuvent aussi servir de fournisseur de cache.

Schéma CDN CloudFlare
Schéma CDN CloudFlare

Cela a aussi effet d’alléger la base de données en réduisant le nombre de requêtes SQL.

Dans Windows

Le système d’exploitation de Microsoft possède de nombreux cache.

Dans Linux

Comme nous le savons, l’utilisation de la mémoire tampon et de la mémoire cache du système de fichiers Linux permet d’accélérer les opérations d’entrée et de sortie (E/S).
Le noyau met en cache mémoire, les fichiers sont souvent lus par le système pour un accès plus rapide.

Dans les CPU, disques/SSD, etc

Beaucoup de périphériques ont un cache matériel ou que l’on peut configurer dans l’OS.
Par exemple le CPU possède plusieurs niveaux de cache (L1, L2, L3).
Le but est d’éviter de stocker et consulter les données en RAM, ce qui permet d’avoir des données au plus proche du processeur afin de gagner en performances.
Plus de détails : Processeur CPU et coeurs : Caractéristiques et fonctionnement

Les disques dur (HDD) et SSD ont aussi un cache.
Par exemple, Crucial propose un système Momentum Cache qui utilise une partie de la mémoire pour stocker des données.

Quelle est la différence entre un cache mémoire et la mémoire tampon (buffer)

Dans un article précédent, j’expliquais ce qu’était à quoi servait la mémoire tampon : Qu’est-ce que la mémoire tampon (Buffer memory).
Essentiellement la principale différence est :

  • Le cache vise à accélérer l’accès aux données et soulager les ressources systèmes
  • Le buffer cherche à compenser la différence de vitesse entre deux systèmes ou matériels

Consultez ce tableau pour comprendre les différences.

Buffer Cache
Existe uniquement dans la RAM Existe en RAM ou sur le disque dur
Compense la différence de vitesse
entre deux programmes qui échangent des données
Accélère l’accès aux données qui sont
fréquemment demandées
Stocke les données originales Stocke une copie des données originales
Un emplacement de stockage temporaire normal dans la
la RAM
Un emplacement de stockage rapide dans la mémoire vive ou sur le disque dur.
Composé de RAM dynamique Composé de RAM statique
Quelle est la différence entre un cache mémoire et un buffer

Comment vider le cache

Voici les tutoriels du site pour vous aider à vider les cache.

L’article Qu’est-ce qu’un cache (en informatique) est apparu en premier sur malekal.com.

Enregistrer un commentaire

0 Commentaires