Forum Linux.général Swap ou pas swap, tel est la question.

Posté par  .
Étiquettes : aucune
0
8
mar.
2008
Le swap est utilisé pour compenser un manque de mémoire.
Seulement avec Vista, les PC en sont maintenant toujours surchargé et je n'ai par exemple jamais dépassé les 2 tiers d'utilisations de ma ram.

La question que je me pose : une swap non utilisé prend-elle des ressources ?
Le swap devient-il obsolète où a-t-il encore une raison d'être ?

Vous qui vous y connaissez un peu techniquement en gestion de la mémoire par le noyau, qu'en est-il ?
  • # Pas de resource

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

    La swap non utilisée ne consomme pas de ressource, au moins pas de problème la dessus.

    Pour ce qui est de son utilité, certaines personnes pensent qu'il est indispensable d'avoir un peu de swap car certains algorithmes du noyau sont optimisés par rapport à la présence de swap.

    En pratique il n'y a pas de certitude. Par contre, c'est sur la swap n'est pas obsolète, ne considère pas ta bête de course comme une généralité, imagine linux sur un fer à repasser.
  • # Linux n'est pas Windows

    Posté par  . Évalué à 4.

    Avec Windows 2000 et XP (et peut-être d'autres, je n'ai pas testé), il est quasi nécessaire d'avoir du swap même si il ne sert pas (?!). Sans swap la machine fonctionne à la vitesse normale mais Windows affiche rapidement un message comme quoi il n'y a pas assez de mémoire virtuelle. Si le swap est trop petit, il est automatiquement agrandi. Tout cela avec de la RAM libre, je précise :-) Du genre pic d'utilisation de mémoire égal à 75% de la taille de la RAM, mais Windows insiste pour dire qu'il manque de la mémoire virtuelle. Avant d'utiliser le swap, utilise la RAM bord** de m**** !

    Avec Linusque tu fais comme ça te chante. Ceux qui prétendent qu'il est *nécessaire* d'avoir du swap n'ont tout simplement pas essayé.
    La différence avec et sans: la gestion du cache disque utilise moins de mémoire lorsqu'il n'y a pas de swap et/ou que le swap est plein. Idem pour *certains* programmes.

    Admettons que j'ai une machine avec 512 Mo de mémoire + 512 Mo de swap, et que cette machine fonctionne parfaitement bien. Elle a donc 1 Go de mémoire en tout.
    Alors si je mets 1 Go de mémoire + zéro swap... c'est la même chose. En plus rapide.

    Ma machine perso a 2 Go de mémoire, zéro swap (Ubuntu 7.04). Derrière moi il y a une machine avec 2 Go de mémoire, zéro swap (Debian Etch + Windows 2003 dans un vmware).

    Au boulot, une vingtaine de serveurs (128 Mo à 4 Go de mémoire), tous avec du swap, 60 ko utilisés sur chaque. Je laisse le swap car je ne songe jamais à ne pas le mettre, tout simplement :-)

    J'ai testé pendant une quinzaine de jour une machine de production avec 4 Go de mémoire, zéro swap (Debian Etch + Windows 2003 Terminal Server dans un vmware + Windows 2003 SQL Server 2005 dans un autre vmware). J'ai remis le swap en route histoire de dire.

    Par contre si tu fais comme chez certains hébergeurs (Ikoula par exemple) qui mettent plus de 200 machines virtuelles sur un serveur, alors le swap est très bien. La plupart de ces machines virtuelles dorment bien sagement sur le disque.
  • # Au cas où...

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

    Perso, si cela ne tenait qu'à moi, je garderais au moins un peu de swap au cas où une application demanderais beaucoup de ressources : il m'est déjà arrivé d'ouvrir une image (avec Gimp) qui demandait plus que la mémoire disponible... et avec la swap désactivée (par erreur), c'est un blocage total de la bête, avec redémarrage au bouton.
    • [^] # Re: Au cas où...

      Posté par  . Évalué à 6.

      Au contraire
      Sans swap => dés qu'il n'y as plus de mémoire le noyau va commencer a tuer des applications, la grosse gourmande en premier, au pire on perd quelques autres processus au passages, mais on reprend la main.
      Avec swap => le noyau va utiliser la swap, et plus il va swapper des processus moins le système répondra bien, une fois X en swap quasi-impossible de reprendre la main sans passer par les SysRQ, et ça finira souvent en reboot.

      De toutous façons à l'époque ou j'avais de la swap 99% du temps elle étais occupé par une application qui faisait une grosse fuite de mémoire, et ça finissait quand même en 100% (mem + swap) occupés et vidange de la mémoire par le noyau, sans swap j'aurai gagné du temps et gardé le contrôle sur ma machine.

      Maintenant j'ai 2go de ram et plus de swap sur mon PC principal, sur mon portable j'ai une partition de swap, mais c'est juste pour le suspend to disk.
  • # Pour synthétiser, que pensez-vous de ...

    Posté par  . Évalué à 2.

    Pour synthétiser, je dirais :

    Sous Linux :

    . swap taille == mémoire vive, démarche conservatrice sur un serveur, pour le cas où il y ai un gros délire récupérable (on peut faire plein de choses en ligne de commande !)
    . pas de swap sur un poste de travail très bien fourni en mémoire vive eu égard à l'utilisation qui en ai faite.

    Dans le genre exotique, j'ai lu autrefois sur le net le cas d'un serveur (mode caractère, pas d'X installé) où la zone de swap était construite dans la mémoire vidéo d'une carte très gonflée et inutile...

    Sous Windows : il en a besoin de toutes façons... Autrefois j'ai vu des gens le faire avec un ramdisk et c'était super performant !!!
    • [^] # Re: Pour synthétiser, que pensez-vous de ...

      Posté par  . Évalué à 2.

      Je pense que ta solution est raisonnablement conservatrice:
      - un petit swap sur un serveur au cas où, ça ne coûte que de 1 à 2 Go de disque en général.
      - pas de swap sur un poste bien équipé.
  • # swappiness...

    Posté par  . Évalué à 3.

    /proc/sys/vm/swappiness
    C'est une valeur comprise entre 0 et 100, qui détermine l'utilisation de la swap : en gros, plus la valeur est élevée, plus le noyau aura tendance à swapper pour faire du cache (swappiness est utilisé dans le calcul de swap_tendancy). A 0, c'est l'inverse, tu swappes beaucoup moins.
    L'inconvénient d'une swappiness élevée, c'est que si te regardes un dvd par exemple, ou que tu laisses tourner une appli un certain temps, le noyau va swapper pas mal de programme sur le disque. Résultat, lorsque tu redémarres une appli, il faut qu'il libère des pages en mémoire et charge de nouveau l'appli. Donc firefox met 15 sec. à démarrer.
    A noter qu'il existait un patch de Con Kolivas swap-prefetch qui allait automatiquement rappatrier les pages swappées lorsque la mémoire se libérait.
    Mais la mafia Linuxienne a refusé l'inclusion...
    Donc, si tu veux éviter de swapper, tu mets une swappiness à 0, si tu veux maximiser les cache, tu la mets à 100.
    • [^] # Re: swappiness...

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

      et dans Debian, comment je peux fixer cette valeur? (/proc/sys/vm/swappiness)

      Dans /etc, c'est quel fichier que je dois modifier?

      Merci

      Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

      • [^] # Re: swappiness...

        Posté par  . Évalué à 4.

        Ça doit être dans /etc/sysctl.conf

        il faut mettre ici :
        vm.swappiness=valeur

        ensuite pour confimer : sysctl -p

        Ceci est valable pour tout ce qui est dans /proc/sys
        c'est par exemple là qu'on doit mettre
        net.ipv4.ip_forward=1 pour fixer le echo 1 > /proc/sys/net/ipv4/ip_forward nécessaire pour pouvoir partager sa connexion.

        On démarre juste après le sys et on remplace les slash par des points.
  • # Merci

    Posté par  . Évalué à 2.

    Merci à tous pour ces informations, je crois que je vais tester un peu les deux.

Suivre le flux des commentaires

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