Dans les systèmes Linux, les trois concepts de SWAP, Cache et Buffer apparaissent souvent devant nous. Que signifient-ils respectivement ? En termes simples, SWAP fait référence à la zone d'échange de mémoire virtuelle, Cache fait référence à la zone tampon et Buffer fait référence à la zone tampon d'entrée et de sortie. Leur utilisation dans les systèmes Linux joue un rôle essentiel dans les performances du système. Cependant, différents scénarios d'application et différentes applications occupent et utilisent ces trois zones de cache différemment. Comment pouvons-nous les utiliser de manière plus rationnelle ? Ensuite, cet article vous le présentera en détail.
**1. Affichez la mémoire Linux via une commande gratuite
**
total : taille totale de la mémoire.
used : la taille de la mémoire qui a été utilisée (cela inclut la mise en cache, les tampons et les parties partagées).
gratuit : taille de mémoire libre.
shared : Mémoire partagée entre les processus (généralement non utilisée, peut être ignorée).
buffers : les éléments écrits dans la mémoire sont mis en cache, afin que les demandes puissent recevoir une réponse rapide, et les données suivantes sont régulièrement vidées sur le disque.
cached : La taille du contenu mis en cache dans la mémoire après lecture (cette partie est destinée à un retour rapide lors de la prochaine requête).
-/+ tampons/cache peuvent être considérés comme deux parties :
-buffers/cache : La taille de la mémoire utilisée (notez qu'il ne s'agit pas de la partie utilisée, car les tampons et le cache ne sont pas utilisés, les organisations et les personnes doivent s'assurer qu'ils peuvent être libérés), sa valeur = utilisé- tampons mis en cache.
+buffers/cache : La taille de la mémoire disponible (de même pas la partie représentée par free), sa valeur = free+buffers+cached.
Swap : La taille utilisée de la partition de swap sur le disque dur.
Le but de la conception est que lorsque la mémoire disponible représentée par +buffers/cache mentionné ci-dessus a été épuisée, après l'arrivée de nouvelles requêtes de lecture et d'écriture, une partie des données en mémoire sera écrite sur le disque, traitant ainsi une partie de l'espace disque comme mémoire virtuelle à utiliser.
2. Introduction au tampon et au cache
Cache (cache) est conçu pour augmenter l'échange de données entre le processeur et la mémoire, et Buffer (tampon) est conçu pour augmenter l'échange de données entre la mémoire et le disque dur (ou d'autres périphériques d'E/S).
Le cache est principalement conçu pour les opérations de lecture, mais le concept de cache peut être facilement confondu. Je comprends que le processeur lui-même dispose d'un cache, y compris un cache de premier niveau, un cache de deuxième niveau et un cache de troisième niveau. Nous savons que toutes les instructions. Les opérations du processeur sont connectées à la mémoire et la puissance de traitement du processeur est bien supérieure à la vitesse de la mémoire. Ainsi, afin d'éviter que les ressources du processeur ne soient inutilisées, Intel et d'autres sociétés ont intégré certains caches à l'intérieur du processeur, mais après dans l'ensemble, ils ne peuvent pas y mettre trop de circuits, donc cette partie du cache n'est pas très grande, principalement utilisée pour stocker certaines instructions et données couramment utilisées. En réalité, la plupart des données du cache devraient occuper l'espace mémoire à mettre en cache. les données demandées, c'est-à-dire la partie Cache ci-dessus (cette partie est une compréhension purement personnelle, qu'elle soit correcte ou non reste à voir) recherche).
Buffer est principalement conçu pour les opérations d'écriture, et plus spécifiquement pour les opérations d'écriture entre la mémoire et le disque dur. Le but est de concentrer les opérations d'écriture, de réduire la fragmentation du disque et les processus d'adressage répétés du disque dur, et d'améliorer les performances.
Il existe un processus démon à l'intérieur du système Linux qui efface régulièrement le contenu du tampon et l'écrit sur le disque dur. L'opération ci-dessus sera également déclenchée lorsque la commande de synchronisation est exécutée manuellement.
3. Symptômes courants
Symptôme 1 : les fichiers sont fréquemment consultés sous Linux, la mémoire physique est rapidement utilisée et le cache ne cesse de croître.
Explication : Linux mettra en cache chaque donnée demandée dans le cache. L'avantage est que la vitesse de traitement du CPU est bien supérieure à celle de la mémoire, donc lorsque le CPU et la mémoire communiquent, le résultat de l'appel peut être rapidement renvoyé depuis le cache. .
Symptôme 2 : Le swap est occupé.
Explication : le Swap peut être occupé lorsque la mémoire est insuffisante, le Swap peut donc être utilisé comme indicateur de surveillance du serveur pour attirer l'attention.
4. Nettoyer manuellement le swap et les tampons/cache
(1) Échange propre
swapoff -a && swapon -a
Instructions de fonctionnement : si Swap a été utilisé et qu'il y a encore de l'espace dans +buffers/cache après l'avoir effacé, l'exécution de l'opération swapoff -a déclenchera l'échange du contenu de Swap en mémoire et les données ne seront pas perdues.
(2) Nettoyer les tampons/cache :
sync; sync; sync;&& echo 3 >/proc/sys/vm/drop_caches sleep 2 echo 0 > /proc/sys/vm/drop_caches
Mode d'emploi :
sync–>Écrivez le contenu mis en cache sur le disque dur ;
echo 3 >/proc/sys/vm/drop_caches–>Modifiez la valeur de drop_caches à 3, la valeur par défaut est 0, la changer à 3 effacera le contenu mis en cache ;
sommeil 2 -> Attendez un moment au cas où l'étape précédente ne serait pas terminée ;
echo 0 >/proc/sys/vm/drop_caches -> Revenir à la valeur par défaut
En général, les trois zones de cache SWAP, Cache et Buffer sont des éléments cruciaux du système Linux et ont un impact direct sur les performances et la stabilité du système. Les contrôler et les utiliser correctement peut rendre le système plus stable et plus efficace, améliorant ainsi l'expérience utilisateur. J'espère que cet article vous aidera à comprendre l'utilisation de ces trois zones de cache dans les systèmes Linux. Si vous avez quelque chose à ajouter ou si vous avez des questions, veuillez laisser un message pour communiquer.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!