Forum Linux.debian/ubuntu Libération du Swap : pourquoi pas moi ?

Posté par  .
Étiquettes :
0
8
avr.
2005
Bonjour tous, toutes,

A la suite de mes "errements" en matière de mêmoire vive...

[cf. ça : https://linuxfr.org/forums/10/7559.html(...) ]

... j'ai fini par "optimiser" un peu la quantité de ram dispo sur mon tas de tôle (2 sessions Xfree86 parallèle en permanence avec des drivers "nv" libres + 2 bureaux KDE + 2 Mozilla à plein temps ça finit par faire lourd).

Je suis donc passé à de la DDRAM 3200 (sous cadençé bikoz chipset époque Quattrocento) et surtout à 1024 Mo ( + 400 Mo grosso modo). Je pensais souffler un peu avant de me décider à changer de carte mère et rajouter encore une barrette pour la route.

Rien n'y fait, mon Mozilla perso a encore planté pendant mon absence et ce qui me chiffone c'est la situation du Swap !?

J'ai à cette minute 74 Mo de mêmoire vive disponible et 73 Mo de swap ; or le taux de swap ne diminue pas ?
C'est aussi vrai avec des valeurs beaucoup plus faible de swap et beaucoup plus importantes de Ram physique disponible !!
En gros le swap utilisé à un moment *t* ne semble pas être libéré ultérieurement lorsque de la mêmoire physique se libère !!?

Quelqu'un saurait-il m'expliquer le pourquoi de cette solution, voire un règlage pour y remédier (kswapd ? connait pas du tout ?) ?

Je suis en noyau 2.4.27-2-debian-k7 sans lo-latency ou preempt, un pur kernel Debian tout propre.

Merci par avance de tous vos conseils,


Yoj'
  • # Swappons un peu

    Posté par  . Évalué à 4.

    >En gros le swap utilisé à un moment *t* ne semble pas être libéré ultérieurement lorsque de la mêmoire physique se libère !!?

    Ben oui, c'est logique. Lorsque le noyau utilise le swap, c'est parce qu'il n'a plus de mémoire physique : il place des pages de données sur le disque.

    Cela dit, swapper, cela prend du temps, puisque justement, cela requiert des accès au disque. Or, lorsque de la mémoire physique se libère, rien ne garantit que l'on va avoir à nouveau besoin des pages swappées : le programme peut se terminer sans les accéder, ou ne pas en avoir besoin pendant un bon bout de temps.

    Il y a même toutes les raisons de penser que ces pages ne seront pas accédées dans l'immédiat, puisque le (ou les) processus auxquelles elles sont attachées ne les a jusqu'à présent pas demandées.

    Maintenant, imagine qu'un utilisateur recommence à employer toute la RAM... Si on a dé-swappées ces pages, il nous faut à présent les re-swapper, sans l'ombre d'un gain - tout au contraire, on a perdu du temps, et, sur les portables, de la consommation électrique.

    Conclusion : le noyau ne s'embête pas avec ces bêtises et ne dé-swappe pas les pages tant qu'il n'y a pas lieu. Ce n'est ni un comportement aberrant, ni un bogue ou une anomalie, mais bien un comportement normal et, à mon avis, non configurable.
    • [^] # Re: Swappons un peu

      Posté par  (site web personnel) . Évalué à 5.

      Bonjour,

      Je me permet de copier-coller intégralement un message de Aurélien Francillon (daté d'aujourd'hui), sur la liste gentoo-fr, parce qu'il répond très bien à ta question:

      hello,

      j'ai un portable avec 1Go de ram et gentoo et ca marche vachement bien ;)
      Il y a une limite a environ 850Mo pour la ram due a des raisons plus ou
      moins historiques sur x86, en fait pour utiliser les 150Mo
      supplementaires tu doit compiler ton noyau avec l'option "highmem" par
      contre il parait que ca ralentit pas mal les acces memeoire ... il y a
      un bon article sur kerneltrap sur ce sujet si tu veux tout savoir a
      propose du highmem http://kerneltrap.org/node/2450/7217(...)

      Actuellement tu vois de la ram libre est inutilisé et des trucs dans le
      swap... en fait il y a plusieurs approches du point de vue du noyau,
      exemple bidon :
      tu compile un noyau et tu a un mozilla qui tourne en meme temps :
      - soit tu decide que tu veux mozilla dans la ram pour que si jamais tu
      veux lire tes mail tout de suite mozilla soit completement reactif ...
      masi en meme temps ta compilation noyau sera peut etre plus lente car il
      y aura moins de place en ram pour le cache disque ...
      - sinon le noyau peut decider de mettre mozilla dans le swap car il n'en
      a pas besoin tout de suite (ca fait au moins 1 Min que tu ne l'a pas
      utilisé ... ), du coup il recupère de la memoire dans laquelle il va
      pouvoir mettre du cache disque ... et la compilation sera plus rapide
      ...
      pour voir le montant de cache disque, utilise "free" voire free -m qui
      affiche en Mo ...

      ces comportement peuvent etre modifiés par la variable swappiness
      par exemple

      echo "25" > /proc/sys/vm/swappiness

      et j'ai le swap qui n'est (presque) jamais utilisé ...
      les aplis sont toujours dispo rapidement mais du coup celles qui sont en
      ram et jamais utilisées "squattent" de la ram pour rien ...

      echo "75" > /proc/sys/vm/swappiness

      aura l'effet inverse ..
      en plus de ca ca change un peu avce chaque noyau etc ...


      tu peux aussi tester le patch autoswappiness de con kolivas (sous gentoo
      au moins dans sys-kernel-/ck-sources) qui s'arrange pour changer ce
      parametre automatiquement en fonction des besoins ...

      de plus je pense que le noyau doit toujours se garder un certain
      pourcentage de ram libre ... histoire d'avoir toujours de la memoire
      libre sous le coude ...

      pour finir a mon avis de la ram il n'y en a jamais de trop, au pire
      c'est pas gaché c'est pour le cache disque si tu l'utilise pas...


      A+
      aurel


      -- ------------------------------------------------------------------ a voir: http://shanseifan.com/Famille/05_Muriel//Blog/luxembourg9cu_fr.jpg(...)


      Je pense d'ailleurs que ce gars traine dans les parages...
      • [^] # Re: Swappons un peu

        Posté par  . Évalué à 4.

        Ben mince, alors, je ne pensais pas que c'était reconfigurable... Merci, moi aussi, ça m'apprend quelque chose.


        Cela dit, ce gars est sous noyau 2.4, et je viens de vérifier à l'instant : il n'y a pas de fichier /proc/sys/vm/swappiness en 2.4 .

        Donc, manifestement, c'est reconfigurable en 2.6, en revanche, sous son 2.4, je ne sais pas.

Suivre le flux des commentaires

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