Pages : 1
#1 Le 03/05/2016, à 17:47
- Krabosek
Gestion swap
Juste pour mon info : comment est géré le swap ?
(programme C++, QT)
Bon mon programme en cours est buggé.
Il fait une palanquée d'allocations dynamiques & part à la saturation sur le swap, jusqu'à là le comportement est normal.
Je tue le processus en cause. Il y a libération de la mémoire physique (ouf) mais le swap jamais.
Il me semblait que les pages en swap étaient liées aux processus les moins utilisés (ou de moindre priorité),
mais que dès que la mémoire physique était disponible, le swap se vidait.
Me trompe-je?
Bonne soirée
Bientôt tu auras tout oublié; bientôt tous t'auront oublié.
Marc-Aurèle
Hors ligne
#2 Le 03/05/2016, à 18:51
- J5012
Re : Gestion swap
c'est plus subtil que ca :
- memoire ram
- memoires cache cpu : L1 , L2 , L3 , L4 , etc → je ne connais pas de cpu L5 mais sait-on jamais ?
- memoire cache autres processeurs (dsp, north, south bridge etc)
- memoire cache creee par le systeme init à partir de la ram
- memoire swap
il y a donc plein de petits reglages internes au systeme pour le comportement de la swap ... voir toutes les discussions precedentes ... notamment : quel minimum maximum peut-on mettre à l'option swappiness ?
Dernière modification par J5012 (Le 03/05/2016, à 18:53)
Hors ligne
#3 Le 03/05/2016, à 19:06
- claudius01
Re : Gestion swap
Bonsoir,
Si cela peut t'aider et surtout éviter de réécrire certaines choses: cf. Libérer la SWAP
Maintenant, Krabosek, quand tu écris "Il [le programme] fait une palanquée d'allocations dynamiques & part à la saturation sur le swap, jusqu'à là le comportement est normal", je suis quand même un peu inquiet que tu trouves cela normal ;-)
Hors ligne
#4 Le 03/05/2016, à 20:27
- alius
Re : Gestion swap
salut quelques commandes utiles :
vider le swap :
sudo swapoff -a
réactiver le swap
sudo swapon
dans certains cas (je ne sais pas encore lesquels exactement) le systeme peut swapper alors qu'il y a encore de la RAM mais qui peut être utilisée par le systeme (buffered memory and cached memory)
pour vider la mémoire en cache :
echo 3 | sudo tee /proc/sys/vm/drop_caches
le système peut décider de swap plus ou moins rapidement en fonction du taux de swappiness compris entre 0 et 100
0 le systeme de swap pas, 100 le systeme force le swap
tu peux check sa valeur avec :
cat /proc/sys/vm/swappiness
tu peux la modifier avec :
sudo sysctl vm.swappiness=10
pour ce faire de manière permanente :
gksudo gedit /etc/sysctl.conf
hope this help
Alius
Hors ligne
Pages : 1