Connaitre ce qu'il y a dans le swap

Bonjour,
j’ai un curieux probléme depuis quelques temps. Mon swap se rempli assez rapidement (reboot obligatoire tout les 4 jours), alors qu’il reste de la RAM.
exemple ce soir:
swap: 1.6 Go
RAM: 2.8 G / 3.9

J’ai essayé de modifier le paramétre .swappiness sans succès.
Comment savoir ce que contient le swap ?
Je ferais bien un swapoff brutal, mais sans savoir ce qu’il y a dedans …

Avec une commande comme [mono]top[/mono] ou (mieux) [mono]htop[/mono] tu devrais voir quel processus consomme le plus de mémoire.

Il te faut juste regarder via ps le processus utilisant un maximum de mémoire

ps vax --sort %mem

edit: doublon

J’avais déja repéré que c’était iceweasel. Mais suite à vos remarques, en y regardant de plus pret, j’ai identifié plus finement le coupable:
/usr/lib/iceweasel/xulrunner/plugin-container /usr/lib/flashplugin-nonfree/libflashplayer.so -greomni /usr/lib/iceweasel

Le coupable est donc un des rare logiciel proprio qui tourne sur ma machine.
Je vais regarder si il y a une mise à jour.

J’ai cerché un peu partout sur le net.Ce probléme de fuite mémoire est connu (surtout sur windows d’ailleurs).
Pas de mise à jour de flashplayer dans les dépots (j’ai la 12.2.202.335), le plugin memory fox ne fonctionne pas sous linux.
Voila ou j’en suis de mes recherches.
Si vous avez une autre piste …

Je suppose que ce que tu cherches réellement, c’est comment supprimer cette fuite mémoire.

Mais pour répondre au titre du sujet, voici comment connaitre ce qu’il y a dans le swap (par exemple entre les octets 1901 et 1950) :

[code]$ swap="$(grep -om1 ‘^/[^ \t]*’ /proc/swaps)"
$ copie_du_swap="$(mktemp /tmp/copie_du_swap.XXXXXX)"

dd if="$swap" of="$copie_du_swap"

$ od -vtu1 -w1 -j1900 -N50 -Ad “$copie_du_swap”
$ rm “$copie_du_swap”[/code]
Tu pourras peut-être y voir des motifs récurrents ?

Sinon, je ne sais plus où j’ai vu ça sur le forum, mais il y a des plugins pour firefox permettant de regarder les vidéos sans utiliser flash. Les deux premiers résultats qui sortent après une requête dans un moteur de recherche sont tout html5 et vidéo sans flash.

J’ai identifié que c’était le flashplayer le coupable. C’est lui qui me remplit la mémoire et le swap.
L’étape d’aprés, c’est de corriger le probléme. J’ai essayé de me passer de flash, ou de revenir à la version 10, mais je fini toujours par tomber sur un site qui ne passe pas. Le dernier en date est M6replay. Ils ont besoin de flashplayer pour gérer les DRM.
Je suis condamné à garder cette bouse.
Je teste la version 11,2,202,378 , je vais voir ce que ça donne

Ça irait pas de démarrer le navigateur dans une machine virtuelle, et d’arrêter la machine virtuelle quand t’as plus besoin du navigateur ?

Je ferme iceweassel, et je récupère presque toute la mémoire.
donc inutile de me compliquer la vie avec une VM.
Je vais rester quelques jours avec cette version, on va bien voir

bonjour,
en supposant que le swap se trouve sur /dev/sda5, pour une installation standard:
tu as aussi
strings /dev/sda5|more
ou xxd /dev/sda5|more

A+
JB1

J’ai utilisé la commande proposée par fran.b

et c’est comme ça que j’ai vu que c’était flashplayer qui occupais mémoire et swap (plusieurs gigas …)

bonjour,
pour contourner l’affaire,
il y a l’astuce de changer shmmax,
la mémoire ram utilisée sera plus grande avant d’aller dans la mémoire auxilliaire
A+
JB1

Ha oui, c’est vrai, j’ai déja utilisé ça avec zm.
Mais le probléme c’est q’avant de remplir le swap, il a déja rempli la RAM …

J’ai trouvé des trucs intéressants :
[ul][li]Limiter la quantité de mémoire utilisable par une application[/li]
[li]Contrôle des ressources système avec ulimit[/li]
[li][mono]$ man bash | grep -A 40 ulimit[/mono][/li][/ul]

Ça devrait te permettre d’empêcher iceweasel d’aller taper dans le swap.

je me rend compte que je suis aussi concerner par ce problème , il m’a fallu attendre 15 minutes pour qu’il m’ouvre un fichier iso avec ark avec le pc qui a tourner seulement 23h !! il me restait 800 Mo et le swap a fond

L’option ulimit limite bien la taille mémoire utilisée par les applications. Mais j’ai eu plusieurs plantage d’applicatif apré avoir activé cette option. Difficile de dire si il y a un lien de cause à effet.
Je l’ai donc désactivée (reboot)

Si on refuse à un programme la mémoire qu’il demande, habituellement cela entraine son arrêt brutal.

Avec le shell Bash, tu peux te contenter d’ouvrir un terminal, et de lancer ces deux commandes :

$ ulimit -v 300000 $ iceweasel

Ainsi, Iceweasel ne pourra pas utiliser plus de 300 Mo de mémoire vive, et donc il ne stockera rien dans le swap.

C’est ce que j’ai fait. Mais curieusemnt, c’est à partir de ce moment là que j’ai eu des plantages de logiciels gourmands en mémoire.
Je ne vois pas de lien évident entre les 2, j’ai juste constaté le phénomène.
et iceweasel, lui n’a pas planté, et le swap c’est beaucoup moins rempli que d’habitude. Je n’ai pas pu voir jusqu’ou il irait, j’ai redemaré avant car les plantages d’applicatifs étaient gênants.

lxc permet peut-être d’isoler un processus dans un conteneur. La quantité de mémoire utilisable par un conteneur est définie par la valeur de [mono]lxc.cgroup.memory.limit_in_bytes[/mono] dans un fichier de configuration.

Salut,

[quote=“piratebab”]C’est ce que j’ai fait. Mais curieusemnt, c’est à partir de ce moment là que j’ai eu des plantages de logiciels gourmands en mémoire.
Je ne vois pas de lien évident entre les 2, j’ai juste constaté le phénomène.
et iceweasel, lui n’a pas planté, et le swap c’est beaucoup moins rempli que d’habitude. Je n’ai pas pu voir jusqu’ou il irait, j’ai redemaré avant[/quote]

[mono]memtest86[/mono] peut s’avérer, utile … ?