Maison >Tutoriel système >Linux >[Optimisation du système Linux] Libérez votre espace mémoire : guide d'optimisation du swap et de la mémoire tampon
Avez-vous déjà rencontré un système Linux qui fonctionne lentement ou dont la mémoire est insuffisante ? Cela peut être dû au fait que le swap et le tampon du système ne sont pas bien configurés. Cet article vous donnera une compréhension approfondie du swap et du tampon, et comment les optimiser pour faire passer les performances de votre système au niveau supérieur.
Quel est le mécanisme de mémoire de Linux ?
Nous savons que la lecture et l'écriture de données directement à partir de la mémoire physique sont beaucoup plus rapides que la lecture et l'écriture de données à partir du disque dur. Par conséquent, nous espérons que toutes les lectures et écritures de données seront effectuées en mémoire et que la mémoire sera limitée, ce qui conduit aux concepts. de mémoire physique et de mémoire virtuelle.
La mémoire physique est la taille de la mémoire fournie par le matériel du système. Par rapport à la mémoire physique, il existe un concept de mémoire virtuelle sous Linux. La mémoire virtuelle est une stratégie proposée pour répondre au manque de mémoire physique. Un morceau de mémoire logique virtualisée par l'espace. L'espace disque utilisé comme mémoire virtuelle est appelé Swap Space.
En tant qu'extension de la mémoire physique, Linux utilisera la mémoire virtuelle de la partition d'échange lorsque la mémoire physique est insuffisante. Plus précisément, le noyau écrira les informations du bloc mémoire temporairement inutilisées dans l'espace d'échange. est libéré. , cette mémoire peut être utilisée à d'autres fins. Lorsque le contenu original est nécessaire, les informations seront relues de l'espace d'échange vers la mémoire physique.
La gestion de la mémoire de Linux adopte un mécanisme d'accès par pagination. Afin de garantir que la mémoire physique peut être pleinement utilisée, le noyau échangera automatiquement les blocs de données rarement utilisés de la mémoire physique vers la mémoire virtuelle à des moments appropriés, tandis que les blocs de données fréquemment utilisés seront automatiquement échangés. dans la mémoire virtuelle aux moments appropriés. Les informations sont conservées dans la mémoire physique.
Pour avoir une compréhension approfondie du mécanisme de fonctionnement de la mémoire Linux, vous devez connaître les aspects suivants :
Le système Linux effectuera des opérations d'échange de pages de temps en temps pour conserver autant de mémoire physique libre que possible. Même si rien ne nécessite de mémoire, Linux échangera les pages de mémoire temporairement inutilisées. Cela évite le temps nécessaire à l’attente de l’échange.
L'échange de pages sous Linux est conditionnel. Toutes les pages ne sont pas échangées vers la mémoire virtuelle lorsqu'elles ne sont pas utilisées. Le noyau Linux échange uniquement certains fichiers de pages rarement utilisés vers la mémoire virtuelle en fonction de l'algorithme "le plus récemment utilisé". phénomène : Linux a encore beaucoup de mémoire physique, mais beaucoup d'espace de swap est également utilisé. En fait, cela n'est pas surprenant.Par exemple, lorsqu'un processus qui occupe beaucoup de mémoire doit consommer beaucoup de ressources mémoire lors de son exécution, certains fichiers d'échange inhabituels seront échangés dans la mémoire virtuelle, mais plus tard, ce processus qui occupe beaucoup Des ressources mémoire seront échangées. Lorsque le processus se termine et qu'une grande partie de la mémoire est libérée, le fichier d'échange qui vient d'être échangé ne sera pas automatiquement échangé dans la mémoire physique. À moins que cela ne soit nécessaire, la mémoire physique du système sera beaucoup plus libre. en ce moment, et l'espace d'échange est également utilisé. Le phénomène que nous venons de mentionner s'est produit. Il n’y a pas de quoi s’inquiéter à ce stade, tant que vous savez ce qui se passe.
Les pages de l'espace d'échange seront d'abord transférées vers la mémoire physique lors de leur utilisation. S'il n'y a pas suffisamment de mémoire physique pour accueillir ces pages à ce moment-là, elles seront immédiatement remplacées. La mémoire virtuelle pour stocker ces pages finira par provoquer des problèmes tels que de faux plantages et des anomalies de service sous Linux. Bien que Linux puisse récupérer tout seul dans un certain laps de temps, le système récupéré est fondamentalement inutilisable.
Par conséquent, il est très important de planifier et de concevoir correctement l'utilisation de la mémoire Linux.
Dans le système d'exploitation Linux, lorsqu'une application a besoin de lire les données d'un fichier, le système d'exploitation alloue d'abord de la mémoire, lit les données du disque dans ces mémoires, puis distribue les données à l'application lorsqu'elle a besoin de lire ; les données du fichier Lors de l'écriture des données, le système d'exploitation alloue d'abord de la mémoire pour recevoir les données utilisateur, puis écrit les données de la mémoire sur le disque. Cependant, s'il y a une grande quantité de données qui doivent être lues du disque vers la mémoire ou écrites de la mémoire vers le disque, les performances de lecture et d'écriture du système deviennent très faibles, car s'il lit des données depuis le disque ou écrire des données sur le disque, c'est un processus très long qui consomme du temps et des ressources. Dans ce cas, Linux a introduit les tampons et les mécanismes de mise en cache.
Les tampons et la mise en cache sont deux opérations de mémoire, utilisées pour enregistrer les fichiers et les informations sur les attributs de fichiers qui ont été ouverts par le système. De cette façon, lorsque le système d'exploitation a besoin de lire certains fichiers, il recherchera d'abord dans les tampons et les zones de mémoire mises en cache. .S'ils sont trouvés, ils seront lus directement. Si les données requises ne sont pas trouvées, elles seront lues à partir du disque. Il s'agit du mécanisme de mise en cache du système d'exploitation. Grâce à la mise en cache, les performances du système d'exploitation sont grandement améliorées. Mais le contenu des tampons et des tampons mis en cache est différent.
Les tampons sont utilisés pour mettre en mémoire tampon les périphériques de blocage. Ils enregistrent uniquement les métadonnées du système de fichiers et le suivi des pages en vol, tandis que le cache est utilisé pour mettre les fichiers en mémoire tampon. Pour faire plus simple : les tampons sont principalement utilisés pour stocker le contenu du répertoire, les attributs et autorisations des fichiers, etc. Et le cache est directement utilisé pour mémoriser les fichiers et programmes que nous avons ouverts.
Afin de vérifier si notre conclusion est correcte, vous pouvez ouvrir un très gros fichier via vi pour voir les modifications dans le cache, puis vi à nouveau le fichier pour ressentir les similitudes et les différences dans la vitesse des deux ouvertures, et si cela la vitesse de la deuxième ouverture est-elle nettement plus rapide que la première fois ? Exécutez ensuite la commande suivante :
find / -name .conf pour voir si la valeur des tampons change, puis exécutez la commande find à plusieurs reprises pour voir la différence de vitesse d'affichage entre les deux fois.
Quand Linux a-t-il commencé à utiliser la mémoire virtuelle (swap) ?
[root@wenwen ~]# cat /proc/sys/vm/swappiness 60
Le 60 ci-dessus signifie que le swap sera utilisé lorsque 40 % de la mémoire physique est utilisée (voir les informations réseau : lorsque la mémoire physique restante est inférieure à 40 % (40=100-60), l'espace de swap commencera à être utilisé) lorsque swappiness=0. Utilisez la mémoire physique au maximum, puis échangez l'espace. Lorsque swappiness=100, cela signifie utiliser activement la partition d'échange et déplacer les données de la mémoire vers l'espace d'échange en temps opportun.
Plus la valeur est grande, plus il est probable que vous utilisiez le swap. Il peut être fixé à 0, ce qui n'interdit pas l'utilisation du swap, mais minimise seulement la possibilité d'utiliser le swap.
Normalement : il est recommandé que le paramètre de partition d'échange soit deux fois supérieur à la mémoire (lorsque la mémoire est inférieure ou égale à 4 G). Si la mémoire est supérieure à 4 G, l'échange doit uniquement être plus grand que la mémoire. De plus, essayez de réduire autant que possible le swappiness, afin que les performances du système soient meilleures.
B. Modifier le paramètre swappiness
#临时性修改: [root@wenwen ~]# sysctl vm.swappiness=10 vm.swappiness = 10 [root@wenwen ~]# cat /proc/sys/vm/swappiness 10 #永久性修改: [root@wenwen ~]# vim /etc/sysctl.conf 加入参数: vm.swappiness = 35 然后在直接: [root@wenwen ~]# sysctl -p /etc/sysctl.conf #查看是否生效: cat /proc/sys/vm/swappiness 35
Il prend effet immédiatement et peut également prendre effet après le redémarrage.
Comment libérer de la mémoire ?
Les systèmes généraux ne libèrent pas automatiquement le fichier de configuration de clé /proc/sys/vm/drop_caches de la mémoire. Ce fichier enregistre les paramètres de libération du cache. La valeur par défaut est 0, ce qui signifie que le cache n'est pas libéré. Sa valeur peut être n'importe quel nombre compris entre 0 et 3, représentant différentes significations :
Fonctionnement pratique :
Évidemment, il y a beaucoup de mémoire libre
Comment libérer le swap ?
Prémisse : Tout d'abord, assurez-vous que la mémoire restante est supérieure ou égale à l'utilisation du swap, sinon elle plantera ! Selon le mécanisme de mémoire, une fois la partition d'échange libérée, tous les fichiers stockés dans la partition d'échange seront transférés vers la mémoire physique. La libération du swap s'effectue généralement en remontant la partition de swap.
a. Vérifiez où la partition de swap actuelle est montée ? b. Arrêtez cette partition c. Vérifiez l'état : d. Vérifiez si la partition de swap est arrêtée. e. Montez le swap sur /dev/sda5 f.
Grâce à l'introduction de cet article, vous avez déjà compris les concepts et utilisations de base du swap et du buffer dans les systèmes Linux et comment vérifier leur utilisation. Dans le même temps, nous avons partagé quelques suggestions d'optimisation pratiques pour vous aider à améliorer davantage les performances du système et l'utilisation de la mémoire. J'espère que cet article vous aidera !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!