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 19/06/2015, à 12:08

PicSou31

Gestion de la mémoire vive

Bonjour à tous !

Je suis sous Ubutnu 14.04 (LTS), et j’ai quelques problèmes pour gérer ma mémoire vive. J’ai au total 2 + 4 Go de RAM, et ne devrais donc pas avoir de problèmes pour l’usage que j’en fais (bureautique et parfois quelques jeux vidéo). Mais :

  • Premier problème : le logiciel que j’utilise le plus, Firefox, a une consommation de RAM anormalement élevée. Au moment où j’écris ce message, j’ai sept onglets ouverts sans scripts incroyables (cette page, trois onglets Wikipédia, Qwant, le Monde et Facebook). Pourtant, htop m’annonce que le processus a entre 1450 et 1650 Mio de mémoire réservée ! Alors je sais que Firefox consomme beaucoup ; mais à ce point ça me paraît anormal… et je ne pense pas que le problème vienne d’un plugin, puisque quand le processus plugin-container se lance, il consomme rarement plus de 50 Mio.

  • D’autre part, mon disque dur, bien qu’entièrement fonctionnel, ne doit pas être très réactif. Du coup, quand mon système commence à swapper, j’ai des pertes de puissance phénoménales : généralement l’interface graphique ne répond plus, et je souffre énormément quand je passe en console. J’ai donc fortement limité la swapiness (je l’ai progressivement descendue à 5 %, alors qu’elle était initialement fixée à 60 %). Je suppose que supprimer le swap serait une mauvaise idée ; cela doit sans doute permettre d’éviter les crashs dans certains cas critiques (encore qu’avec 6 Go de RAM, je pense être large). En fait, le problème, c’est que j’ai l’impression que le système ne se base pas sur la mémoire véritablement utilisée pour décider s’il faut swapper (used memory), mais sur used memory + buffers + cache. Et comme Linux met très facilement les processus terminés en cache, je monte très vite à la limite.

J’ai donc trois questions assez précises, même si les suggestions complémentaires sont les bienvenues :

  • Comment faire en sorte que Firefox cesse de consommer autant de mémoire qu’un dirigeant soviétique de vodka ?

  • Est-il possible de ne faire dépendre que la mise en swap que de la quantité de mémoire réellement utilisée ? Sinon, aurais-je intérêt à supprimer complètement la possibilité de swapper ?

Merci d’avance pour votre aide ! :-)

Hors ligne

#2 Le 19/06/2015, à 16:50

cinaptix

Re : Gestion de la mémoire vive

Avec 8 Go de RAM et pour une utilisation "normale", le swap est inutile. La commande tmpfs permet même de faire "écrire" en RAM un tas de trucs (tmp, cache, log, thumbnail, etc... ) sans que ça pose des problème de mémoire vive. Le système n'alloue que la RAM nécessaire le reste étant toujours utilisable. À l’extinction du PC, tout est effacé de la mémoire.

Dernière modification par cinaptix (Le 19/06/2015, à 16:52)


↔ Libriste radicalisé depuis mai 2007 ↔
① - Xubuntu 20.04 - CM Gigabyte GA-B85M-D3H - Pentium G3420 à 3,2 Ghz - RAM 8 Go à 1600 Mhz - SSD 64 Go + HDD 500 Go.
② - Raspberry Pi 3 (Raspbian Stretch) — ③ - Tablette Lenovo 10' (Android 10) — ④ - Smartphone Honor 9A (dégooglisé)

Hors ligne

#3 Le 19/06/2015, à 16:54

PicSou31

Re : Gestion de la mémoire vive

Je n’ai que 6 Go, mais je doute que ça change grand chose… ^^

Donc tu veux dire que je peux supprimer le swap (en faisant exécuter la commande swapoff au démarrage) et que je devrais configurer tmpfs ? Note : cette commande semble ne pas exister chez moi, et je ne vois pas quel package installer

Dernière modification par PicSou31 (Le 19/06/2015, à 17:01)

Hors ligne

#4 Le 19/06/2015, à 17:08

cinaptix

Re : Gestion de la mémoire vive

PicSou31 a écrit :

Je n’ai que 6 Go, mais je doute que ça change grand chose… ^^

Donc tu veux dire que je peux supprimer le swap (en faisant exécuter la commande swapoff au démarrage) et que je devrais configurer tmpfs ? Note : cette commande semble ne pas exister chez moi, et je ne vois pas quel package installer

ATTENTION : l'utilisation de tmpfs demande une modification du fichier /etc/fstab

Voir ici : http://doc.ubuntu-fr.org/tmpfs


↔ Libriste radicalisé depuis mai 2007 ↔
① - Xubuntu 20.04 - CM Gigabyte GA-B85M-D3H - Pentium G3420 à 3,2 Ghz - RAM 8 Go à 1600 Mhz - SSD 64 Go + HDD 500 Go.
② - Raspberry Pi 3 (Raspbian Stretch) — ③ - Tablette Lenovo 10' (Android 10) — ④ - Smartphone Honor 9A (dégooglisé)

Hors ligne

#5 Le 19/06/2015, à 17:25

PicSou31

Re : Gestion de la mémoire vive

C’est fait. Je vais voir si ça m’épargne les problèmes à l’avenir, et je passerai en résolu.
Merci pour l’info.

Hors ligne

#6 Le 21/06/2015, à 04:18

moko138

Re : Gestion de la mémoire vive

D'autres pistes aussi sont très intéressantes : le swappiness et le contrôle des javascripts.
1) donne

cat /proc/sys/vm/swappiness

et on va aviser ensemble.

2) installe NoScript (extension pour firefox) et trouve sur ce forum les pages qui traitent de sa configuration.
  Ensuite, tu autoriseras (au début) les javascripts temporairement et un par un.
  Il faut savoir que certains sites, en particulier facebook, sont TRÈS gourmands en ram, TRÈS, par l'intermédiaire de leurs nombreux javascripts.

  Après quelques heures, ça deviendra plus intuitif.


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#7 Le 21/06/2015, à 09:41

MrKebi

Re : Gestion de la mémoire vive

Si je puis me permettre, je trouve que Ad block + fait aussi bien le boulot, en étant en plus bien configuré de base (pas ou peu de réglages à apporter).

A titre de comparaison ; 8 onglets ouverts actuellement, dont un sur Facebook et un sur Youtube, ma consommation en RAM pour le processus Firefox est de ~ 290Mo.


PC : i7-4770k 24Go RX 580 120Go SSD + 1Tox2 HDD: Archlinux/Plasma
Laptop 1 : ThinkPad p50 i7-6820HQ 32Go 256Gox2 SSD + 500Go HDD : Archlinux/Plasma, optimus-manager
Laptop 2 : Xiaomi Mi Notebook Pro i5-8250u 8Go 240Go msata : Archlinux/XFCE, optimus-manager
Laptop 3 : HP Pavillion g6 1354ef i5-2450m 4Go 120Go SSD : Archlinux/Plasma

Hors ligne

#8 Le 21/06/2015, à 10:30

PicSou31

Re : Gestion de la mémoire vive

290 Mio pour huit onglets ?! Ah ouais, c’est vraiment qu’il y a un énorme problème chez moi ! :-o

Ma swapiness est à 5.

Je n’utilise pas noScript, mais µBlock (fork d’AddBlock). Je vais donc installer noScript. Je suis quand même surpris que les JS puissent me pomper à eux seuls 1 Gio de RAM, mais bon ! yikes

Hors ligne

#9 Le 21/06/2015, à 10:39

MrKebi

Re : Gestion de la mémoire vive

Comme moko semblait le suggérer au dessus, ce n'est peut-être pas que les javascripts, mais c'est déjà un début, et il faut bien commencer quelque part.


PC : i7-4770k 24Go RX 580 120Go SSD + 1Tox2 HDD: Archlinux/Plasma
Laptop 1 : ThinkPad p50 i7-6820HQ 32Go 256Gox2 SSD + 500Go HDD : Archlinux/Plasma, optimus-manager
Laptop 2 : Xiaomi Mi Notebook Pro i5-8250u 8Go 240Go msata : Archlinux/XFCE, optimus-manager
Laptop 3 : HP Pavillion g6 1354ef i5-2450m 4Go 120Go SSD : Archlinux/Plasma

Hors ligne

#10 Le 21/06/2015, à 10:48

PicSou31

Re : Gestion de la mémoire vive

J’ai donc installé noScript. Le truc, c’est que je n’ai aucune idée de quels scripts accepter ! Par exemple, sur ubuntu-fr : j’accepte tous les scripts d’ubuntu-fr ? Pareil pour Facebook, puis Wikipédia, Youtube, etc ?

À noter que Facebook semble aussi charger des scripts tiers, venant du site akamaihd.net ; je suppose qu’eux, il faut que je les vire ?

Hors ligne

#11 Le 21/06/2015, à 10:52

PizzaTux

Re : Gestion de la mémoire vive

Attention a l'erreur de lecture de ram que font souvent les débutants si vous utilisez la commande free -m

total       used       free     shared    buffers     cached
Mem:         15934       2224      13710        165        109       1168
-/+ buffers/cache:        946      14988
Swap:            0          0          0

Dans cet exemple la consommation de ram est de 946 Mo et non pas 2224 comme pourrai le penser certaine personne.

PicSou31 vérifie bien ce chiffre pour "-/+ buffers/cache", il ne faut pas regarder la 1ere ligne qui ne veux rien dire.

Dernière modification par PizzaTux (Le 21/06/2015, à 10:55)


OS : Linux Mint 17.2/Cinnamon | Debian 8 Jessie/Mate | ArchLinux/Xfce

Hors ligne

#12 Le 21/06/2015, à 11:03

PicSou31

Re : Gestion de la mémoire vive

Je confirme les chiffres que je donnais ; je regardais pour ma part le paramètre « used » de HTOP.

Pour l’instant, avec noScript et absolument tous les scripts de désactivés, je suis retombé à environ 500 Mio pour firefox. Mais j’ai plein de sites qui sont inutilisables tant que je n’active pas les scripts ! big_smile

Hors ligne

#13 Le 21/06/2015, à 11:15

MrKebi

Re : Gestion de la mémoire vive

Il va falloir les activer manuellement je pense. Regarde sur internet s'il n'y a pas des listes disponibles, des tutos ou des topics traitant des scripts à accepter/refuser.

Avec tout ça, encore des problèmes de RAM/ralentissements ?


PC : i7-4770k 24Go RX 580 120Go SSD + 1Tox2 HDD: Archlinux/Plasma
Laptop 1 : ThinkPad p50 i7-6820HQ 32Go 256Gox2 SSD + 500Go HDD : Archlinux/Plasma, optimus-manager
Laptop 2 : Xiaomi Mi Notebook Pro i5-8250u 8Go 240Go msata : Archlinux/XFCE, optimus-manager
Laptop 3 : HP Pavillion g6 1354ef i5-2450m 4Go 120Go SSD : Archlinux/Plasma

Hors ligne

#14 Le 21/06/2015, à 11:22

PicSou31

Re : Gestion de la mémoire vive

Ça à l’air d’aller mieux. M’enfin avec huit onglets ouverts sans scripts, il a fini par remonter à 700 Mio, je pense donc qu’il y a vraiment une fuite de mémoire…

Nota : en réalité, l’autre script de facebook est nécessaire, c’est lui qui affiche les contenus… x_x

Avec tout ça, du coup, je vire complètement le swap, ou pas ?


EDIT : je me suis rendu dans about:memory. Il m’indique une consommation mémoire inférieure à celle mesurée par htop (Firefox donne 450 Mio, htop 670). Parmi cette consommation, apparamment seule 20 % vient des « windows-objects » (il me montre ensuite combien pour chaque onglet)… Mais 28 % sont dans une catégorie « heap-unclassified » et 26 % dans « js-non-window/zones »… c’est quoi ? :-o

Dernière modification par PicSou31 (Le 21/06/2015, à 11:32)

Hors ligne

#15 Le 21/06/2015, à 11:33

moko138

Re : Gestion de la mémoire vive

Tu ne vires pas la swap !

Juste, PizzaTux ! 
PicSou31, donne

free -m

Fais

cat /etc/sysctl.conf

et donne les 7 dernières lignes.

  Et une vérification qui réserve parfois des surprises :

sudo blkid|grep swap ; cat /etc/fstab|grep swap ; cat /proc/swaps ; cat /etc/initramfs-tools/conf.d/resume|grep UUID

%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#16 Le 21/06/2015, à 11:48

PicSou31

Re : Gestion de la mémoire vive

Okay, alors :

$ free -m
             total       used       free     shared    buffers     cached
Mem:          5633       2985       2647        289        105       1139
-/+ buffers/cache:       1740       3892
Swap:         3812          0       3812

$cat /etc/sysctl.conf
[seulement des commentaires, et tout à la fin, une ligne modifiée par moi :]
#Valeur par défaut Ubuntu : 60 ; changé à 5 par [mon vrai nom], avril 2015
vm.swappiness = 5


$sudo blkid|grep swap ; cat /etc/fstab|grep swap ; cat /proc/swaps ; cat /etc/initramfs-tools/conf.d/resume|grep UUID
/dev/sda5: UUID="7ead0152-8267-43ed-a499-3b5d55439f4d" TYPE="swap" 
# swap was on /dev/sda5 during installation
UUID=7ead0152-8267-43ed-a499-3b5d55439f4d none            swap    sw              0       0
Filename				Type		Size	Used	Priority
/dev/sda5                               partition	3904508	0	-1
RESUME=UUID=7ead0152-8267-43ed-a499-3b5d55439f4d

Tu espères trouver quoi dans ma fstab ? ^^

Dernière modification par PicSou31 (Le 21/06/2015, à 11:48)

Hors ligne

#17 Le 21/06/2015, à 13:54

moko138

Re : Gestion de la mémoire vive

La bonne nouvelle c'est qu'il n'y a pas d'incohérence entre les 4 fichiers ;
la mauvaise, c'est qu'il faut chercher ailleurs.

Alors donne le retour (dans ta navigation habituelle ) de

top -d 10   # suivi de 
M                # <-- majuscule et SANS faire Entrée

retour qui ressemblera à

moi@mon-pc:~$ top -d 10

top - 11:43:52 up 3 days,  8:25,  1 user,  load average: 0.29, 0.32, 0.37
Tasks: 152 total,   1 running, 150 sleeping,   0 stopped,   1 zombie
Cpu(s): 12.0%us,  4.7%sy,  0.0%ni, 83.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1533512k total,  1494212k used,    39300k free,   138268k buffers
Swap:  2152672k total,       24k used,  2152648k free,   756476k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND    
# 1er classement, par charge processeur, intéressant aussi. Puis
# le classement par charge mémoire :

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 2974 moi        20   0  751m 216m  43m S    8 14.5 357:30.17 firefox            
13526 lp        20   0  158m 139m 5412 S    0  9.3   0:02.10 gs                 
 3762 moi        20   0  225m  56m  21m S    0  3.8   2:20.47 gimp-2.6           
 3282 moi        20   0  207m  55m  28m S   11  3.7 356:06.36 vlc                
 3125 moi        20   0  240m  51m  15m S    0  3.4   7:41.29 gedit

Plus exactement : les premières lignes, parce que les processus qui prennent moins de 3% de charge mémoire ne nous intéressent pas ici.


En #6, moko a écrit :

2) ...NoScript et trouve sur ce forum les pages qui traitent de sa configuration.
  Ensuite, tu autoriseras (au début) les javascripts temporairement et un par un.

Ma connexion est mauvaise, mais tu as du bol, j'avais enregistré ce lien, #21 et 23 : ./viewtopic.php?pid=18711521#p18711521.
Et il y en a d'autres. Tu as une connexion correcte : trouve !


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#18 Le 21/06/2015, à 14:15

PicSou31

Re : Gestion de la mémoire vive

Ça donne :

top - 14:10:23 up  3:34,  3 users,  load average: 1,91, 1,37, 0,79
Tasks: 217 total,   3 running, 213 sleeping,   0 stopped,   1 zombie
%Cpu(s): 34,9 us,  2,4 sy,  0,0 ni, 62,6 id,  0,1 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem:   5768456 total,  3787484 used,  1980972 free,   129120 buffers
KiB Swap:  3904508 total,        0 used,  3904508 free.  1356748 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                      
 2486 moi       20   0 2416128 995,9m  67820 S  32,6 17,7  64:26.74 firefox                                                                      
 2616 moi       20   0 1022272 206320  52612 S   0,0  3,6   0:42.23 thunderbird                                                                  
 2272 moi       20   0 2258192 172472  53740 S   0,0  3,0   0:26.59 Aether                                                                       
 4654 moi       20   0 1672484 169472  67884 S   0,2  2,9   0:18.71 soffice.bin 
[…]
14156 moi       20   0  506960  55328   7924 R 112,7  1,0   4:49.65 python2.7

J’ai rajouté Python parce que le %CPU valait le coup d’œil (???), mais je pense que c’est spécifiquement parce que j’ai lancé un algo assez costaud, je doute que ça ait à voir avec mes problèmes…


OK, je vais regarder plus en détail comment configurer noscript. Merci pour l’aide.

Hors ligne