Forum Linux.noyau Étrange occupation de la mémoire virtuelle

1
12
fév.
2019

Une machine rate son hibernation. En regardant les journaux, elle s'est arrêtée à 30% en écrivant dans le swap.
Le truc étonnant, c'est que celui-ci était plein de vide : en faisant "swapoff -a" il n'a pas remis un octet en RAM, comme le montre la copie écran ci-dessous, illustrant à la fin le moment où la commande est lancée…

trace ksysguard

Si quelqu'un a une idée d'où vient ce comportement!

  • # Swap suffisant ?

    Posté par . Évalué à 6 (+4/-0).

    Il me semble que ta machine a 8Go de RAM et tu n'as que 4Go de swap ?

    • [^] # Re: Swap suffisant ?

      Posté par (page perso) . Évalué à 2 (+0/-0).

      Oui… il ne sert que pour l'hibernation, je ne lance jamais d'applications gourmandes comme le montre l'historique…

      ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

      • [^] # Re: Swap suffisant ?

        Posté par . Évalué à 6 (+4/-0). Dernière modification le 12/02/19 à 13:09.

        Tu es sûr que c'est possible d'hiberner pour le coup ? J'ai toujours entendu dire qu'il fallait que la swap soit au moins aussi grosse que la RAM.

        • [^] # Re: Swap suffisant ?

          Posté par . Évalué à 4 (+2/-0).

          j'ai les memes 'histoires'
          l'hibernation prend ce qui est en RAM et le place en SWAP

          si la SWAP est inferieure à la RAM,
          je doute que cela fonctionne

        • [^] # Re: Swap suffisant ?

          Posté par . Évalué à 5 (+3/-0). Dernière modification le 12/02/19 à 15:26.

          C'est possible si au moment où l'ordinateur entre en mode hibernation la mémoire totale occupée est inférieure à la taille du swap.
          Effectivement, si le swap n'est pas au moins égal à la RAM on prend le risque que l'hibernation ne fonctionne pas.
          Pour les journaux, il faut regarder avec :
          cat /var/log/syslog | grep 'PM:'|grep kbytes

      • [^] # Re: Swap suffisant ?

        Posté par . Évalué à -2 (+0/-3). Dernière modification le 12/02/19 à 15:34.

        Hello,

        L'hibernation correspond en gros à la copie de la ram sur le swap, il faut au moins autant de swap que de ram …
        En outre, il était recommandé (peut-être ne l'est-ce plus) de mettre entre 1.5 et 2x la quantité de ram en swap sur les serveurs.

        Cdlt ;-)

        • [^] # Re: Swap suffisant ?

          Posté par (page perso) . Évalué à 4 (+3/-0). Dernière modification le 12/02/19 à 15:38.

          Sur les serveurs cela fait un petit moment qu'on ne size plus la swap de la sorte.

          • [^] # Re: Swap suffisant ?

            Posté par (page perso) . Évalué à 2 (+0/-0).

            Merci pour les pistes. Il semblerait que ce soit le processus plasmashell de KDE qui soit bizarrement gourmand. Là il occupait 4Go de mémoire tampon/cache. J'ai récemment activé l'effet "gélatine", c'est donc peut-être lié.

            Pour ce qui est de l'espace nécessaire pour l'hibernation, les journaux indiquent quand le swap est trop petit. Là je suis surpris parce que les journaux indiquent que l'espace est suffisant, mais l'hibernation s'arrête (à lire du bas vers le haut car c'est du journalctl -r):

            févr. 08 16:01:31 localhost kernel: PM: hibernation exit
            févr. 08 16:01:31 localhost kernel: PM: Basic memory bitmaps freed
            févr. 08 16:01:31 localhost kernel: PM: Wrote 2929312 kbytes in 2.48 seconds (1181.17 MB/s)
            févr. 08 16:01:31 localhost kernel: PM: Image saving progress: 30%
            févr. 08 16:01:31 localhost kernel: PM: Image saving progress: 20%
            févr. 08 16:01:31 localhost kernel: PM: Image saving progress: 10%
            févr. 08 16:01:31 localhost kernel: PM: Image saving progress: 0%
            févr. 08 16:01:31 localhost kernel: PM: Using 1 thread(s) for compression.
            PM: Compressing and saving image data (732328 pages)...
            févr. 08 16:01:31 localhost kernel: PM: Restoring platform NVS memory
            févr. 08 16:01:31 localhost kernel: PM: Hibernation image created (730900 pages copied)
            févr. 08 16:01:31 localhost kernel: PM: Normal pages needed: 730900 + 1024, available pages: 1216393
            févr. 08 16:01:31 localhost kernel: PM: Need to copy 730900 pages

            ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

            • [^] # Re: Swap suffisant ?

              Posté par . Évalué à 3 (+1/-0).

              Déjà tampon/cache ça devrait pas être un soucis : il utilise ce qu'il veut, et on va surtout pas le swapper (ce serait con quand même), ni le sauver pour un hibernate (idem).

              En effet, à lire les logs, le processus hibernate a l'air un poil plus malin que je ne le pensais, et se contente de sauvegarder les pages qui le mérite (et il confirme qu'il y a assez de pages).

              Du coup je me pose une question : y a-t-il une erreur réellement ? Ou est-ce un événement extérieur qui simplement interrompt l'hibernation (réveil quoi) ?

              • [^] # Re: Swap suffisant ?

                Posté par (page perso) . Évalué à 2 (+0/-0).

                Déjà tampon/cache ça devrait pas être un soucis : il utilise ce qu'il veut, et on va surtout pas le swapper (ce serait con quand même).

                C'est ce que je pensais. Et pourtant, quand plasma me sature les tampons/cache, le swap est utilisé… je me demande si ça ne serait pas de la mémoire vidéo partagée (GPU Intel Skylake) qui serait indiquée ainsi.

                ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

                • [^] # Re: Swap suffisant ?

                  Posté par (page perso) . Évalué à 4 (+1/-0).

                  Le noyau par défaut swappe avant d'en avoir réellement besoin pour le fonctionnement du système. Pour optimiser les performances.

                  En effet, au lieu de réduire le cache quand la mémoire manque, il va mettre en swap les pages de la mémoire qui ne sont pas ou peu utilisés. Comme ça l'impact sur les perfs est le plus faible possible jusqu'à que la RAM ne puisse supporter le cache + les pages légitimes qui sont fréquemment employées.

                  • [^] # Re: Swap suffisant ?

                    Posté par (page perso) . Évalué à 3 (+1/-0).

                    Ça je sais. Mais dans ce cas, je peux désactiver le swap, et le noyau libère du cache pour recoppier le swap à nouveau en mémoire. Là, il ne le fait pas, indiquant seulement qu'il n'y a plus de pages disponibles! Je pense que l'outil top n'est plus bon sur les zones mémoire utilisées?

                    ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

  • # Tentative

    Posté par . Évalué à 2 (+0/-0).

    Peut-être que les pages ne sont réellement « supprimées » de la RAM que quand la mise en swap totale a réellement réussi ? Du coup, oui, pendant le temps de sauvegarde en swap, tes pages sont dupliquées entre la RAM et le swap, mais de toutes façons ton système est freezé pendant cette période donc ça n'est pas dérangeant. Et si l'hibernation échoue, ton système « repart » sans avoir rien à remettre en RAM… Non ?

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.