Pages : 1
#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
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 !
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 !
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.
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