Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink → 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