Utilisation ram bizarre

Bonjour,
J’ai un soucis de ram.

Tous d’abord, j’ai 2 barrêtes de 4 gb ddr3 de ram.
J’utilise i3 comme gestionnaire de fenêtre, luakit et uzbl comme navigateur internet.
Et je suis sur wheezy.

Ram utilisé:
1- sans X démarré: 150
2- X démarré: 250
3- uzbl ou luakit démarré: 350
4- surf de plusieurs sites

Jusqu’au point 3 tout est normal.
Au point 4, pour chaque page que je surf j’ai quelques mb qui monte à chaque fois dans ma ram.
Exemple à un moment donné j’ai 800 de mb utilisé, je fermes le navigateur, je redescend à environs 300, mais parfois je remarques que même quand j’ai fermer mon navigateur je restes sur 800 mb.

Quand je fais “top” ou “free -m” j’ai 800mb utilisé, sur top je vois aucun logiciel qui utilise plus de 1% de la ram.

Actuellement navigateur fermer:

kripteks@home:~$ free -m total used free shared buffers cached Mem: 7997 1460 6537 0 25 1188
1.4 gb utilisé :exclamation:
J’ai fermer X, sa ma descendu quelques centaines mb, mais c’est resté au gb encore.
J’ai fermer ma connection, reconnecter en root, même résultat.

Que te retourne cette commane :

Cela va classer les processus par ordre de consommation mémoire et tu verras ainsi si c’est bien le navigateur qui consomme ou pas.

Après ce qu’il faut savoir c’est que le noyau garde un maximum de chose en mémoire ram afin d’accroitre les performances dans le cas où tu aurais besoin de ce qui y est stocké encore.

Cette ram sera libéré au besoin et si besoin.

Voila le résultat avec tous fermer:

kripteks@home:~$ ps -efF --sort rss UID PID PPID C SZ RSS PSR STIME TTY TIME CMD root 2 0 0 0 0 2 13:43 ? 00:00:00 [kthreadd] root 3 2 0 0 0 0 13:43 ? 00:00:01 [ksoftirqd/0] root 6 2 0 0 0 0 13:43 ? 00:00:00 [migration/0] root 7 2 0 0 0 0 13:43 ? 00:00:00 [watchdog/0] root 8 2 0 0 0 1 13:43 ? 00:00:00 [migration/1] root 10 2 0 0 0 1 13:43 ? 00:00:01 [ksoftirqd/1] root 11 2 0 0 0 0 13:43 ? 00:00:00 [kworker/0:1] root 12 2 0 0 0 1 13:43 ? 00:00:00 [watchdog/1] root 13 2 0 0 0 2 13:43 ? 00:00:00 [migration/2] root 15 2 0 0 0 2 13:43 ? 00:00:00 [ksoftirqd/2] root 16 2 0 0 0 2 13:43 ? 00:00:00 [watchdog/2] root 17 2 0 0 0 3 13:43 ? 00:00:00 [migration/3] root 19 2 0 0 0 3 13:43 ? 00:00:00 [ksoftirqd/3] root 20 2 0 0 0 3 13:43 ? 00:00:00 [watchdog/3] root 21 2 0 0 0 2 13:43 ? 00:00:00 [cpuset] root 22 2 0 0 0 2 13:43 ? 00:00:00 [khelper] root 23 2 0 0 0 0 13:43 ? 00:00:00 [kdevtmpfs] root 24 2 0 0 0 2 13:43 ? 00:00:00 [netns] root 25 2 0 0 0 0 13:43 ? 00:00:00 [sync_supers] root 26 2 0 0 0 1 13:43 ? 00:00:00 [bdi-default] root 27 2 0 0 0 2 13:43 ? 00:00:00 [kintegrityd] root 28 2 0 0 0 2 13:43 ? 00:00:00 [kblockd] root 29 2 0 0 0 1 13:43 ? 00:00:02 [kworker/1:1] root 30 2 0 0 0 2 13:43 ? 00:00:01 [kworker/2:1] root 32 2 0 0 0 2 13:43 ? 00:00:00 [khungtaskd] root 33 2 0 0 0 2 13:43 ? 00:00:00 [kswapd0] root 34 2 0 0 0 2 13:43 ? 00:00:00 [ksmd] root 35 2 0 0 0 2 13:43 ? 00:00:00 [khugepaged] root 36 2 0 0 0 0 13:43 ? 00:00:00 [fsnotify_mark] root 37 2 0 0 0 2 13:43 ? 00:00:00 [crypto] root 150 2 0 0 0 1 13:43 ? 00:00:00 [ata_sff] root 197 2 0 0 0 3 13:43 ? 00:00:00 [scsi_eh_0] root 199 2 0 0 0 3 13:43 ? 00:00:00 [scsi_eh_1] root 201 2 0 0 0 0 13:43 ? 00:00:00 [kworker/u:2] root 202 2 0 0 0 2 13:43 ? 00:00:00 [scsi_eh_2] root 203 2 0 0 0 3 13:43 ? 00:00:00 [scsi_eh_3] root 204 2 0 0 0 2 13:43 ? 00:00:00 [kworker/u:3] root 249 2 0 0 0 3 13:43 ? 00:00:00 [jbd2/sda1-8] root 250 2 0 0 0 3 13:43 ? 00:00:00 [ext4-dio-unwrit] root 480 2 0 0 0 2 13:43 ? 00:00:00 [khubd] root 484 2 0 0 0 2 13:43 ? 00:00:00 [edac-poller] root 518 2 0 0 0 0 13:43 ? 00:00:00 [ttm_swap] root 842 2 0 0 0 1 13:43 ? 00:00:00 [jbd2/sda5-8] root 843 2 0 0 0 1 13:43 ? 00:00:00 [ext4-dio-unwrit] root 844 2 0 0 0 3 13:43 ? 00:00:00 [jbd2/sda6-8] root 845 2 0 0 0 1 13:43 ? 00:00:00 [ext4-dio-unwrit] root 846 2 0 0 0 3 13:43 ? 00:00:00 [jbd2/sda7-8] root 847 2 0 0 0 1 13:43 ? 00:00:00 [ext4-dio-unwrit] root 848 2 0 0 0 1 13:43 ? 00:00:00 [jbd2/sda8-8] root 849 2 0 0 0 1 13:43 ? 00:00:00 [ext4-dio-unwrit] root 850 2 0 0 0 3 13:43 ? 00:00:00 [jbd2/sda9-8] root 851 2 0 0 0 1 13:43 ? 00:00:00 [ext4-dio-unwrit] root 1228 2 0 0 0 0 13:43 ? 00:00:00 [flush-8:0] root 1962 2 2 0 0 3 13:53 ? 00:01:14 [kworker/3:0] root 3077 2 0 0 0 3 14:43 ? 00:00:00 [kworker/3:2] root 3081 2 0 0 0 2 14:43 ? 00:00:00 [kworker/2:0] root 3327 2 0 0 0 1 14:47 ? 00:00:00 [kworker/1:0] root 3346 2 0 0 0 3 14:48 ? 00:00:00 [kworker/3:1] root 3355 2 0 0 0 0 14:48 ? 00:00:00 [kworker/0:0] root 3445 2 0 0 0 1 14:52 ? 00:00:00 [kworker/1:2] root 3614 2 0 0 0 0 14:53 ? 00:00:00 [kworker/0:2] kripteks 3241 3217 0 3059 308 0 14:45 ? 00:00:00 /usr/bin/ssh-agent /usr/bin/ck-launch-session /usr/bin/dbus-launch --exit-with-session x-window-manager kripteks 3253 1 0 6580 572 0 14:45 tty1 00:00:00 /usr/bin/dbus-launch --exit-with-session x-window-manager root 1213 1 0 1029 652 1 13:43 ? 00:00:00 /usr/sbin/acpid root 1439 1 0 1737 660 2 13:43 ? 00:00:00 dhclient -v -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0 kripteks 3192 3186 0 1037 672 0 14:45 tty1 00:00:00 /bin/sh /usr/bin/startx kripteks 3254 1 0 5886 680 1 14:45 ? 00:00:00 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session kripteks 3606 3605 0 3629 772 2 14:53 ? 00:00:00 gnome-pty-helper root 1945 1944 0 11832 788 3 13:53 ? 00:00:00 udisks-daemon: polling /dev/sr0 root 1 0 0 2654 824 2 13:43 ? 00:00:00 init [2] kripteks 3209 3192 0 3934 868 1 14:45 tty1 00:00:00 xinit /etc/X11/xinit/xinitrc -- /etc/X11/xinit/xserverrc :0 -auth /tmp/serverauth.q2Zd4SxPU3 root 1262 1 0 5086 876 1 13:43 ? 00:00:00 /usr/sbin/cron root 1511 1 0 4055 956 3 13:43 tty5 00:00:00 /sbin/getty 38400 tty5 root 1508 1 0 4055 960 0 13:43 tty2 00:00:00 /sbin/getty 38400 tty2 root 1509 1 0 4055 960 0 13:43 tty3 00:00:00 /sbin/getty 38400 tty3 root 1510 1 0 4055 960 0 13:43 tty4 00:00:00 /sbin/getty 38400 tty4 root 1512 1 0 4055 960 2 13:43 tty6 00:00:00 /sbin/getty 38400 tty6 root 455 308 0 5350 1168 0 13:43 ? 00:00:00 udevd --daemon kripteks 3616 3607 0 4161 1176 3 14:53 pts/0 00:00:00 ps -efF --sort rss root 456 308 0 5357 1192 1 13:43 ? 00:00:00 udevd --daemon kripteks 3264 3263 0 5414 1224 1 14:45 ? 00:00:00 i3status 101 1277 1 0 5948 1260 0 13:43 ? 00:00:00 /usr/bin/dbus-daemon --system kripteks 3217 3209 0 10170 1396 1 14:45 tty1 00:00:00 /usr/bin/ck-launch-session /usr/bin/dbus-launch --exit-with-session x-window-manager root 308 1 0 5440 1716 2 13:43 ? 00:00:00 udevd --daemon kripteks 3263 1 0 5832 1772 2 14:45 ? 00:00:00 i3bar --bar_id=bar-udtguc --socket=/tmp/i3-kripteks.csXoNH/ipc-socket.3250 root 1182 1 0 13267 1820 3 13:43 ? 00:00:00 /usr/sbin/rsyslogd -c5 root 3171 1 0 17768 1976 1 14:45 tty1 00:00:00 /bin/login -- kripteks 3607 3605 0 4864 2180 1 14:53 pts/0 00:00:00 /bin/bash kripteks 3186 3171 0 4870 2216 1 14:45 tty1 00:00:00 -bash kripteks 3250 3217 0 14002 2500 0 14:45 tty1 00:00:00 x-window-manager kripteks 3318 1 0 15490 2680 0 14:46 ? 00:00:00 /usr/lib/gvfs/gvfsd root 1627 1 0 30725 3040 0 13:44 ? 00:00:00 /usr/lib/policykit-1/polkitd --no-debug root 1944 1 0 32438 4048 2 13:53 ? 00:00:00 /usr/lib/udisks/udisks-daemon root 1560 1 0 32381 4068 1 13:44 ? 00:00:00 /usr/sbin/console-kit-daemon --no-daemon kripteks 3605 1 0 50947 11580 0 14:53 ? 00:00:00 lxterminal root 3210 3209 7 36258 51692 2 14:45 tty7 00:00:32 /usr/bin/X -nolisten tcp :0 -auth /tmp/serverauth.q2Zd4SxPU3

[quote=“kripteks”]Actuellement navigateur fermer:

kripteks@home:~$ free -m total used free shared buffers cached Mem: 7997 1460 6537 0 25 1188
1.4 gb utilisé :exclamation:
J’ai fermer X, sa ma descendu quelques centaines mb, mais c’est resté au gb encore.
J’ai fermer ma connection, reconnecter en root, même résultat.[/quote]
Quand tu utilises free, c’est la deuxième ligne “-/+ buffers/cache” qu’il faut regarder pour connaître la consommation réelle de RAM. La différence avec la première ligne constitue ce que Niloo disait : « le noyau garde un maximum de chose en mémoire ram afin d’accroitre les performances dans le cas où tu aurais besoin ». Grossièrement, quand tu lis n’importe quelle info sur le disque, elle reste en mémoire tant que ça ne gêne pas (quel serait l’intérêt de relire systématiquement tout à partir d’un disque dur lent juste pour garder la RAM rapide inutilisée, alors qu’elle peut être mise à profit ?). Dès qu’un programme a besoin de RAM et que le système n’en a plus assez, il libère automatiquement une partie de ces buffers/cache et ce en toute transparence pour le programme.

D’ailleurs on voit que tu as 25 + 1188 = 1213 Mo en buffers/cache, ce qui te fait une utilisation réelle de 1460 - 1213 = 247 Mo.
Pour moi ça ressemble moins à un problème d’utilisation de ta RAM qu’à un problème d’interprétation des chiffres données par free. :wink:

[quote=“syam”]Pour moi ça ressemble moins à un problème d’utilisation de ta RAM qu’à un problème d’interprétation des chiffres données par free. :wink:[/quote]Pareil… :wink:

Essaye avec “htop”, il est “plus fin” pour la visualisation de la RAM utilisée… (entre autre)…

:006

Ah bah voila :041

Merci :slightly_smiling:

Pas d’accord. L’occupation mémoire, c’est bien la première ligne. La seconde indique l’occupation mémoire sauf buffers et pagecache. On va me dire : ouais, mais les buffers et le pagecache c’est pas de la vraie occupation car ça peut être libéré en cas de besoin. En effet, mais ce n’est pas la seule utilisation à être dans cette situation : c’est aussi le cas du cache d’inodes et dentries (méta-données des systèmes de fichiers), qui est inclus dans la ligne Slab de /proc/meminfo et qu’on peut vider en écrivant 2 dans le pseudo-fichier /proc/sys/vm/drop_caches (1 pour vider le pagecache, 3 pour vider les deux). Il y sûrement d’autres utilisations dans ce cas. Le choix de retrancher seulement les buffers et le pagecache est arbitraire.

J’irai même plus loin en écrivant qu’une partie de la mémoire des applications peut être libérée en passant dans le swap. On va me dire : ouais, mais le swap ça fait ramer, donc ça compte pas. Et devoir recharger des données depuis le disque après avoir vidé les caches, ça ne ferait pas ramer ? En fait c’est pareil. Dans les deux cas on a des données qui sont soit sur disque soit en RAM. Le noyau a d’ailleurs des paramètres pour régler l’arbitrage entre mise en swap et vidage des caches en cas de pression sur la mémoire.