[SWAP] Astuces pour vider le swap

Ce qui ne concerne ni le forum ni des problèmes
Répondre
Avatar de l’utilisateur
cdemoulins
Chu Ko Nu
Messages : 310
Inscription : mar. 11 mars 2008, 04:15
Localisation : Paris

[SWAP] Astuces pour vider le swap

Message par cdemoulins »

J'ai pas mal de problème avec le swap car j'utilise des applications assez gourmande en mémoire comme eclipse, firefox, openoffice, ...
J'ai remarqué qu'à partir du moment ou les applications commence à "swaper", tout le système perd en réactivité. Pour éviter ça j'ai cherché un moyen de vider le swap et j'ai trouvé :

Code : Tout sélectionner

swapoff -a && swapon -a (en root ou avec sudo)
La méthode n'est pas des plus élégant mais est très efficace. Une fois que je ferme eclipse (environ 300 Mo après utilisation), j'execute cette commande et sa m'évite d'avoir à redemarrer juste pour récupérer un système normal car devoir attendre 5-10 secondes pour acceder aux menus de GNOME c'est pas très agréable.
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

t'as combien de mémoire pour avoir à faire ca??
au lieu de désactiver et réactiver le swap, tu devrais essayer en root:

Code : Tout sélectionner

sync
echo 3 > /proc/sys/vm/drop_caches
ca devrait vider la mémoire en cache, écrire les données en attente sur les disques et éviter l'utilisation de la swap
Avatar de l’utilisateur
cdemoulins
Chu Ko Nu
Messages : 310
Inscription : mar. 11 mars 2008, 04:15
Localisation : Paris

Message par cdemoulins »

J'ai 1 Go de Ram mais je suis assez surpris de swaper aussi facilement. Dès que je travail sous eclipse avec 20-30 onglet d'ouvert sous firefox (3beta4) j'arrive facilement a 300 Mo en swap.
Je me demande si il n'y aurait pas un lien avec le faite que je sois en 64 bit mais sa me semblerais quand même assez curieux.

En tout merci pour ton astuce, j'essairais la prochaine fois.
Avatar de l’utilisateur
mimas
Elfe
Messages : 559
Inscription : sam. 30 sept. 2006, 22:30
Localisation : Toulouse

Message par mimas »

cdemoulins a écrit :J'ai 1 Go de Ram mais je suis assez surpris de swaper aussi facilement. Dès que je travail sous eclipse avec 20-30 onglet d'ouvert sous firefox (3beta4) ...
keuf... keuf... Difficile de croire que ça swappe avec si peu de ressources utilisées par ces programmes si légers.
Anarchy for the triple A.
Avatar de l’utilisateur
cdemoulins
Chu Ko Nu
Messages : 310
Inscription : mar. 11 mars 2008, 04:15
Localisation : Paris

Message par cdemoulins »

mimas a écrit :
cdemoulins a écrit :J'ai 1 Go de Ram mais je suis assez surpris de swaper aussi facilement. Dès que je travail sous eclipse avec 20-30 onglet d'ouvert sous firefox (3beta4) ...
keuf... keuf... Difficile de croire que ça swappe avec si peu de ressources utilisées par ces programmes si légers.
C'est ironique ? :shock:
Avatar de l’utilisateur
mélodie
Maître du Kyudo
Messages : 2784
Inscription : lun. 30 oct. 2006, 02:06
Localisation : Pyrénées

Message par mélodie »

cdemoulins a écrit :
mimas a écrit :
cdemoulins a écrit :J'ai 1 Go de Ram mais je suis assez surpris de swaper aussi facilement. Dès que je travail sous eclipse avec 20-30 onglet d'ouvert sous firefox (3beta4) ...
keuf... keuf... Difficile de croire que ça swappe avec si peu de ressources utilisées par ces programmes si légers.
C'est ironique ? :shock:
Je ne voudrais pas en rajouter une couche, mais j'ai aussi 1 Go de ram, et ça produit le même effet chez moi, avec plein d'onglets et tout un tas de choses qui tournent en même temps (en particulier les programmes du système et du gestionnaire de bureau, qu'est-ce qu'ils pompent ceux-là ! ;) ... )

Je te suggère d'ajouter de la ram.

/Edit : pour l'instant ma distribution est une i686, mais je vais essayer la version 86_64, pour d'autres raisons, et... je ne pense pas que le swapping soit dû à la version.
Avatar de l’utilisateur
marc[i1]
Maître du Kyudo
Messages : 1753
Inscription : ven. 27 oct. 2006, 10:48
Localisation : Nantes (44)

Message par marc[i1] »

m'enfin !
Swapper avec 1Go de RAM !!! y a vraiment un problème !

Bon Eclipse est surement le fautif pour cdemoulins mais mélodie tu dois avoir un problème avec ton système, c'est pas 20 onglets dans Firefox qui fait swapper avec 1Go de RAM !
Ne vous emmerdez plus, emmerdez les autres.
Avatar de l’utilisateur
mélodie
Maître du Kyudo
Messages : 2784
Inscription : lun. 30 oct. 2006, 02:06
Localisation : Pyrénées

Message par mélodie »

marc[i1] a écrit :m'enfin !
Swapper avec 1Go de RAM !!! y a vraiment un problème !

Bon Eclipse est surement le fautif pour cdemoulins mais mélodie tu dois avoir un problème avec ton système, c'est pas 20 onglets dans Firefox qui fait swapper avec 1Go de RAM !
Ah ? Bon, je reviendrais avec une capture d'écran de htop. À cette heure je n'ai que 6 onglets ouverts dans Firefox 3 et rien à signaler.
$ free -m
----------total---used---free---shared---buffers---cached
Mem: 1010---568---441------0------------37-----------284
-/+ buffers/cache: 247 762
Swap: total : 713 used : 0 free : 713
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

en fait peu importe le swap, en même temps, il est fait pour ca, mais de la à faire ramer la machine...
Avatar de l’utilisateur
cdemoulins
Chu Ko Nu
Messages : 310
Inscription : mar. 11 mars 2008, 04:15
Localisation : Paris

Message par cdemoulins »

tuxce a écrit :en fait peu importe le swap, en même temps, il est fait pour ca, mais de la à faire ramer la machine...
Quand il y a 300 Mo en swap, et que dans ces 300 Mo il y a certain process de gnome, le temps que le process revienne en RAM prend un peu de temps. C'est exactement la définition de "ramer".
A partir du moment ou je commence à swaper, dès que j'ouvre un programme, le système, pour permettre à l'application que je veux lancer d'avoir d'avoir un espace mémoire, doit swaper un autre programme. Enfin tout ça pour dire que c'est assez normal qu'un système "ram" quand il n'a plus assez de ram.
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

je ne dis pas que tu as tord, simplement, si tu peux te permettre de désactiver la swap, c'est que le système a assez de ram libre, le temps pour remettre les données en ram ne se fait qu'une fois par données et devrait en tout cas prendre moins de 5-10 sec pour ouvrir un menu gnome :shock:

au pire, le temps que tu perd ne peut etre supérieur à la commande que tu lances pour désactiver la swap...

par contre, si tu as un manque de mémoire, la, le swap sera continu et ca sera lent :P

mais bon tout ca est relatif, il est indéniable que des données en ram sont accessibles plus rapidement qu'en swap.
Avatar de l’utilisateur
cdemoulins
Chu Ko Nu
Messages : 310
Inscription : mar. 11 mars 2008, 04:15
Localisation : Paris

Message par cdemoulins »

Je vide le swap qu'une fois avoir regagné suffisament de mémoire bien sur.
Avatar de l’utilisateur
mélodie
Maître du Kyudo
Messages : 2784
Inscription : lun. 30 oct. 2006, 02:06
Localisation : Pyrénées

Message par mélodie »

tuxce a écrit :tu devrais essayer en root:

Code : Tout sélectionner

sync
echo 3 > /proc/sys/vm/drop_caches
ca devrait vider la mémoire en cache, écrire les données en attente sur les disques et éviter l'utilisation de la swap
Terrible !

J'ai refermé Swiftweasel 2.0.0.13 athlon xp fr, après avoir ouvert des tas d'onglets et scrollé sur les pages un moment, puis je l'ai refermé (pour revenir ici en Firefox3 )

Autres applis ouvertes, cmus (musique en mode texte), Terminal, et aterm:

Avant:
$ free -m
total used free shared buffers cached
Mem: 1010 949 61 0 58 566
-/+ buffers/cache: 323 687
Swap: 713 0 713
$ free -m
total used free shared buffers cached
Mem: 1010 928 81 0 58 566
-/+ buffers/cache: 303 707
Swap: 713 0 713
$ free -m
total used free shared buffers cached
Mem: 1010 928 81 0 58 566
-/+ buffers/cache: 303 707
Swap: 713 0 713
$ free -m
total used free shared buffers cached
Mem: 1010 928 81 0 58 566
-/+ buffers/cache: 303 707
Swap: 713 0 713


# echo 3 > /proc/sys/vm/drop_caches
# exit
exit

Après:
$ free -m
total used free shared buffers cached
Mem: 1010 318 691 0 0 50
-/+ buffers/cache: 267 742
Swap: 713 0 713
$
Ceux qui sont en gras sont les chiffres correspondant à la quantité de mémoire libre.
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

si ca vous interesse, y a aussi une autre variable du kernel qui permet (pour celle ci) de controler directement le choix de swapper ou de diminuer le cache, par contre, la modification de cette valeur peut ralentir au lieu de rendre plus performant à vos risques et périls:
/proc/sys/vm/swappiness prend une valeur de 0 à 100
et en fait, ca permet de faire pencher le choix d'un coté ou de l'autre:
0 -> un besoin de ram fait automatiquement réduire le cache en effacant les anciennes données.
100 -> un besoin de ram passe en swap les pages non utilisées.

la valeur par défaut est 60.
Avatar de l’utilisateur
vincentxavier
Elfe
Messages : 778
Inscription : ven. 11 août 2006, 18:17
Localisation : Epinay sur Seine (93)

Message par vincentxavier »

Pour manipuler aisément ces informations, on peut utiliser sysctl :

Code : Tout sélectionner

sysctl -w vm.drop_caches=3
sysctl -w vm.swapinness=0
Pour rendre les modifications pérennes (i.e. à chaque reboot), il suffit de rajouter

Code : Tout sélectionner

vm.drop_caches=3
vm.swapinness=0
dans /etc/sysctl.conf

Lire sysctl(8) et sysctl.conf(5).

Pour en savoir plus si ces trucs là : http://www.namurlug.org/drupal/node/188 http://www.redhat.com/docs/manuals/linu ... ories.html http://www.linuxinsight.com/proc_sys_vm_hierarchy.html.
Warranty

THIS ADVICE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.

En clair, je ne pourrais être tenu responsable des dégats causés par l'utilisation de mes conseils

Image
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

pour drop_caches, c'est l'écriture de cette valeur qui lance le traitement, c'est pas la peine de la rajouter dans /etc/sysctl.conf
Répondre