Pourquoi Ubuntu ne semble-t-il pas libérer de la mémoire?

11

Je travaille avec apache2 + php et d'autres applications de serveur Web.

J'ai un moniteur comme session se connectant à un serveur Web. La mémoire RAM est pleine.

Mais lors de la déconnexion d'une session, cela ne libère pas la mémoire RAM.

J'ai un moniteur via free -m, et il affiche une mémoire non libérée même sans session connectée.

Y a-t-il une solution?

Tejaskumar Tank
la source
Soyez prudent avec free -m. La première ligne montre l'utilisation de la mémoire, y compris les tampons et les caches. La deuxième ligne affiche la mémoire utilisée moins les tampons et le cache, qui est la mémoire disponible réelle. Vous devriez également essayer quelque chose comme htopà des fins de surveillance. Il est beaucoup plus intuitif et disponible dans les dépôts officiels. Si vous manquez vraiment de mémoire, donnez-nous plus d'informations comme le type d'application Web que vous utilisez, la quantité de RAM dont vous disposez, ce qui est utilisé et tout. Collez la sortie de free -m et des trucs comme ça.
Johnride
3
Il n'y a pas de solution, car il n'y a pas de problème. Linux utilise la RAM disponible comme tampon pour les fichiers.
Exécutez CMD
Mais ici, après la commande fire: sudo sync && sudo sysctl -w vm.drop_caches = 3 Il me montre la bonne mémoire disponible et les applications fonctionnent mieux.
Tejaskumar Tank
Je suis le plus expérimenté avec le serveur VPS et j'ai récemment fondé debian 9.0 fonctionnant parfaitement avec la gestion de la mémoire.
Tejaskumar Tank le

Réponses:

12

Vous pouvez libérer de la mémoire inutilisée à l'aide de cette commande:

sudo sync && sudo sysctl -w vm.drop_caches=3

Cette commande synchronise les données mises en cache, puis écrit un paramètre de système d'exploitation lors de l'exécution, situé dans / proc / sys / vm / drop_caches . Ce paramètre est lu une fois par le noyau, puis libère la mémoire inutilisée.

Fondamentalement, le noyau réserve trois sections dans le cache, ce qui pourrait augmenter l'utilisation de la mémoire:

  • pagecache
  • dentiers
  • inodes

L'écriture de ce paramètre entraînera la suppression par le noyau de pagecaches, denteries et inodes propres de la RAM, ce qui rendra cette mémoire libre. Trois valeurs peuvent être attribuées:

  1. vm.drop_caches = 1 pagecaches gratuites.
  2. vm.drop_caches = 2 dentiers et inodes gratuits.
  3. vm.drop_caches = 3 pagecaches, denteries et inodes gratuits.

Important: après l'exécution, cela reviendra à son état normal, ce qui signifie recommencer la mise en cache des pagecaches, des denteries et des inodes. Utilisez-le en fonction de la configuration et de l'application de votre serveur.

Guillermo Garcia
la source
1
Pouvez-vous expliquer un peu plus en détail?
AB
Cette commande n'est utile que lorsqu'une fois par semaine ou quotidiennement en fin de journée veut libérer toute la mémoire inutilisée, également 3 ou 2 ou 1 chacune avec un objectif différent. N'essayez pas ceci sur un serveur chargé par session.
Tejaskumar Tank
1
Modifiez votre réponse, pas en tant que commentaire.
AB
sudo sync & sudo sysctl -w vm.drop_caches=3
Nyxynyx
1
@GuillermoGarcia Utilisation de bash dans Ubuntu 18.04.3. Je devais inclure sudoune deuxième fois. Sinon, je reçois l'erreursysctl: permission denied on key 'vm.drop_caches'
Nyxynyx