Re: 'vidange' du swap
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Sylvain Sauvage wrote:
> Franck Joncourt, mardi 13 février 2007, 23:20:05 CET
>> [...]
> Presque. C'est la RAM qui est un cache pour la mémoire virtuelle,
> laquelle est la somme de la swap et d'une partie de la RAM (overcommit).
> On a :
> 1. un peu de RAM pour le noyau ;
> 2. beaucoup de RAM pour les caches (partie « text » du code
> et fichiers) ;
> 3. le reste de la RAM pour les données des programmes ;
> 4. le swap pour les données des programmes.
> Et on espère que la mémoire utilisée à un moment donné tient dans la
> partie 3. pour ne pas avoir à aller en lire/écrire des pages dans la
> swap.
> Le noyau préfère aussi utiliser la RAM comme cache : quand les
> données ne servent pas, elles sont mises en swap pour faire de la
> place.
>
>> Je ne comprends pas l'utilite de "vider la swap", puisqu'elle sera
>> rechargee ensuite avec au moins une partie des donnees qui y etaient
>> deja presentes afin d'accelerer le "calcul".
>
> Parce que les mécanismes de suspension sur disque (hibernation)
> utilisent la swap comme espace de stockage persistent. Ils y sauvent
> l'état du système. Donc, au minimum, ils doivent sauver les données du
> noyau et les données anonymes (et sûrement quelques données
> supplémentaires). Sans doute doivent-ils aussi sauver les caches
> fichiers qui sont modifiés en mémoire mais pas encore enregistrés et
> peut-être quelques autres données. En tout cas, si le swap est déjà
> plein, ces mécanismes ont tendance à avorter (ils ne forcent pas le
> vidage des caches).
>
Je cerne un peu mieux le probleme avec ces nouvelles notions.
> D'où la question : comment vider le swap pour que l'hibernation se
> passe facilement.
>
Ou comment faire pour dire au noyau de reprendre ces billes de la swap,
pour laisser de la place a des donnees de plus grande importance a
l'instant t.
> En y repensant, je pense que vider les caches devrait être tout aussi
> efficace et moins dangereux : en général, la mémoire allouée est de
> taille_du_swap + taille_de_RAM/2
> (1/2 = /proc/sys/vm/overcommit_ratio / 100), donc toute la mémoire
> allouée ne tient pas forcément en RAM seule, donc vider la swap sans
> perte de données (= sans qu'un processus saute) n'est pas toujours
> possible.
>
C'est bien ce qui m'ennuyait.
> Pour vider les caches (depuis 2.6.16) :
> sync ; sync ; sync ; echo 3 > /proc/sys/vm/drop_caches
>
Je ne savais meme pas qu'il etait possible de le faire.
Du coup le noyau pourrait le faire lui meme. C'est plus facile a dire
qu'a faire :p!
- --
Franck Joncourt
http://www.debian.org
http://smhteam.info/wiki/
GPG server : pgpkeys.mit.edu
Fingerprint : C10E D1D0 EF70 0A2A CACF 9A3C C490 534E 75C0 89FE
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFF01whxJBTTnXAif4RAgVPAKDRU7UPZmlzVH50fjDBGyI6t9wg4ACgoMh8
axokZc1G+nr9kinEdEccdEk=
=veNT
-----END PGP SIGNATURE-----
___________________________________________________________
Copy addresses and emails from any email account to Yahoo! Mail - quick, easy and free. http://uk.docs.yahoo.com/trueswitch2.html
Reply to: