GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi Swap est-il utilisé lorsqu'il reste beaucoup de mémoire libre ?

Solution 1 :

C'est parfaitement normal.

Au démarrage du système, un certain nombre de services démarrent. Ces services s'initialisent, lisent les fichiers de configuration, créent des structures de données, etc. Ils utilisent un peu de mémoire. Beaucoup de ces services ne fonctionneront plus pendant toute la durée de fonctionnement du système car vous ne les utilisez pas. Certains d'entre eux peuvent durer des heures, des jours ou des semaines. Pourtant, toutes ces données sont en mémoire physique.

Bien sûr, le système ne peut pas jeter ces données. Il ne peut pas prouver qu'il ne sera littéralement jamais accessible. L'un de ces services, par exemple, peut être celui qui vous permet d'accéder à distance à la box. Vous ne l'avez peut-être pas utilisé depuis une semaine, mais si vous l'utilisez, cela fonctionnera mieux.

Mais le système sait qu'il aimerait peut-être utiliser cette mémoire physique pour des choses comme un cache disque ou d'autres manières qui amélioreront les performances. Il s'agit donc d'un échange opportuniste. Lorsqu'il n'a rien de mieux à faire, il écrit sur le disque les données qui n'ont pas été utilisées depuis très longtemps, en utilisant l'espace de swap. Cependant, il conserve toujours les pages en mémoire physique. Ils sont donc toujours accessibles sans avoir à les échanger.

Maintenant, si le système a besoin ultérieurement de cette mémoire physique pour autre chose, il peut simplement jeter ces pages car il les a déjà écrites pour les échanger. Cela donne au système le meilleur des deux mondes. Les données sont toujours conservées en mémoire, elles sont donc accessibles sans avoir à les lire sur le disque. Mais si le système a besoin de cette mémoire à d'autres fins, il n'aura pas à l'écrire d'abord. Grande victoire tout autour.

Solution 2 :

Cela peut se produire si, à un moment donné, vous avez eu besoin de plus de mémoire que la RAM physique de la machine. À ce moment-là, certaines données auront été écrites dans l'espace d'échange.

Lorsque la mémoire est libérée ultérieurement, les données du swap ne sont pas automatiquement relues dans la RAM :cela ne se produit que lorsque les données du swap sont réellement nécessaires à un processus. C'est parfaitement normal.

Quant à votre processus mysql :tout dépend du type de requêtes que vous exécutez. En théorie 2 requêtes très complexes pourraient probablement suffire pour obtenir une telle charge, quel que soit votre nombre d'utilisateurs. Vous pouvez activer le journal des requêtes lentes pour obtenir plus d'informations sur les requêtes gourmandes en charge.

Solution 3 :

Vous pouvez également modifier ce comportement par sysctl -w vm.swappiness=10 , ce qui réduira considérablement l'utilisation du swap jusqu'à ce qu'il soit réellement nécessaire.

En ce qui concerne MySQL, avez-vous au moins effectué un test de configuration de base à l'aide du script tuning-primer.sh ?


Linux
  1. Pourquoi la taille de la partition d'échange devrait-elle être le double de la taille de la RAM ?

  2. Pourquoi `find` sous Linux ignore-t-il les résultats attendus lorsque `-o` est utilisé ?

  3. Comment obtenir le pourcentage d'utilisation de la mémoire avec vmstat ?

  4. Pourquoi mon système n'affiche-t-il que 3,2 Go de RAM alors que j'ai définitivement 4,0 Go

  5. Pourquoi Unix est-il toujours utilisé si Linux en est basé et que Linux est gratuit ?

Comment effacer la mémoire d'échange sous Linux

Pourquoi utiliser Swap lorsqu'il y a plus qu'assez d'espace libre dans la RAM ?

Linux Oom au hasard alors qu'il y a encore de la mémoire libre ?

exemples de commandes gratuits sous Linux

Comment afficher les appareils utilisés/l'espace libre lors de l'utilisation de LVM ?

OOM tueur tuant des choses avec beaucoup (?) De RAM libre