J'ai des problèmes de consommation importante de RAM par une entité inconnue. Il n'est pas répertorié dans top
, mais la quantité de mémoire disponible diminue avec le temps et la désactivation de tous les programmes n'a aucun effet. Actuellement, la taille est de 3,6 Gio, mais la situation empire lentement. En conséquence, le système ne parvient probablement pas à échanger une grande quantité de mémoire. Après avoir échangé environ 1,5 GiB de mémoire, il passe à la compression.
J'ai utilisé la commande free -m
pour obtenir ce résultat:
total used free shared buff/cache available
Mem: 7875 3517 388 3595 3969 481
Swap: 9536 500 9036
Il semble que la mémoire partagée prend 3,5 gigaoctets.
Voici ce que je reçois quand je lance df -h
:
udev 3,9G 0 3,9G 0% /dev
tmpfs 788M 80M 709M 11% /run
/dev/sdb6 23G 18G 4,1G 81% /
tmpfs 3,9G 168M 3,7G 5% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup
/dev/sdb1 356M 76M 281M 22% /boot/efi
/dev/sdb8 37G 33G 2,0G 95% /home
/dev/sda2 746G 269G 477G 37% /data
/dev/sda3 184G 132G 43G 76% /lindata
tmpfs 788M 84K 788M 1% /run/user/1000
/home/dugi/.Private 37G 33G 2,0G 95% /home/dugi
/proc/meminfo/
contient ceci, il semble que ce soit vraiment quelque chose en mémoire partagée:
MemTotal: 8064776 kB
MemFree: 318880 kB
MemAvailable: 493992 kB
Buffers: 36784 kB
Cached: 3960388 kB
SwapCached: 32776 kB
Active: 3732236 kB
Inactive: 3539036 kB
Active(anon): 3562316 kB
Inactive(anon): 3381848 kB
Active(file): 169920 kB
Inactive(file): 157188 kB
Unevictable: 732 kB
Mlocked: 732 kB
SwapTotal: 9765884 kB
SwapFree: 9253044 kB
Dirty: 516 kB
Writeback: 0 kB
AnonPages: 3269552 kB
Mapped: 493840 kB
Shmem: 3670056 kB
Slab: 264136 kB
SReclaimable: 136840 kB
SUnreclaim: 127296 kB
KernelStack: 23296 kB
PageTables: 82464 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 13798272 kB
Committed_AS: 20782644 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 831488 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 1783952 kB
DirectMap2M: 6498304 kB
DirectMap1G: 0 kB
Cependant, lorsque je liste les éléments stockés dans la mémoire partagée à l'aide de ipcs --human
, je n'obtiens que quelques centaines de mégaoctets de mémoire supprimée:
------ Message Queues --------
key msqid owner perms size messages
------ Shared Memory Segments --------
key shmid owner perms size nattch status
0x00000000 268959744 dugi 600 386,8K 2 dest
0x00000000 265879554 dugi 600 512K 2 dest
0x00000000 557059 dugi 600 16M 2 dest
0x00000000 6258692 dugi 600 1K 2 dest
0x00000000 271974405 dugi 600 512K 2 dest
0x00000000 31784966 dugi 600 16M 2 dest
0x00000000 819207 dugi 600 16M 2 dest
0x00000000 274464776 dugi 600 512K 2 dest
0x00000000 28704777 dugi 600 512K 2 dest
0x00000000 274694154 dugi 600 512K 2 dest
0x00000000 264372236 dugi 600 512K 2 dest
0x00000000 272465933 dugi 600 4M 2 dest
0x00000000 145522702 dugi 600 16M 2 dest
0x00000000 274563088 dugi 600 7,6M 2 dest
0x00000000 113934353 dugi 600 74K 2 dest
0x00000000 215908370 dugi 600 66,2K 2 dest
0x00000000 35913747 dugi 600 512K 2 dest
0x00000000 274595860 dugi 600 7,6M 2 dest
0x00000000 149946389 dugi 600 512K 2 dest
0x00000000 273842198 dugi 600 128M 2 dest
0x00000000 115015703 dugi 600 29,3K 2 dest
0x00000000 150044696 dugi 600 64M 2 dest
0x00000000 143425561 dugi 600 32,5K 2 dest
0x00000000 150011930 dugi 600 1M 2 dest
0x00000000 149749788 dugi 600 512K 2 dest
0x00000000 149848094 dugi 600 64M 2 dest
0x00000000 149815327 dugi 600 1M 2 dest
0x00000000 166363168 dugi 700 2,2M 2 dest
0x00000000 166395937 dugi 600 384K 2 dest
0x00000000 166428706 dugi 600 512K 2 dest
0x00000000 166461475 dugi 700 53,5K 2 dest
0x00000000 166625316 dugi 700 376,6K 2 dest
0x00000000 166658088 dugi 700 13,5K 2 dest
0x00000000 166690857 dugi 700 88,7K 2 dest
------ Semaphore Arrays --------
key semid owner perms nsems
Si j'utilise ipcs -m | awk '{sum+=$5} END{print sum}'
, cela signifie qu'il y a 366790104 octets, soit 366 Mo. C'est beaucoup moins que ce qu'il occupe.
J'utilise Ubuntu 16.04 mis à niveau vers 17.04. Le problème existait déjà avant la mise à niveau. Les programmes que j'utilise presque constamment sont QtCreator, Vivaldi, evince, gcc, et les programmes habituels tels que gnome Shell, nautilus ou gedit.
La mémoire n'est jamais remplacée, je ne peux pas trouver sur Google une cause ou la supprimer une fois par jour, ni l'échanger de force, mais je ne veux pas redémarrer mon ordinateur plusieurs fois par semaine. Des idées ce qui peut être le problème?
EDIT: Je l'ai vu aspirer environ 120 mégaoctets de mémoire sans raison connue. Vivaldi (qui utilise beaucoup la mémoire partagée) a été arrêté à ce moment-là parce que je le soupçonnais de causer le problème. La seule chose que j'ai faite à ce moment-là est que Firefox a été ouvert pour la première fois après le dernier redémarrage (Firefox seul ne peut en être la cause car je ne l'ai pas exécuté avant que ces gigaoctets n'aient été remplis).
EDIT # 2: Le redémarrage du serveur X supprime les éléments de la mémoire partagée, mais ce n'est pas une solution, car le serveur X est exactement ce que je ne veux pas redémarrer (gnome-Shell - le remplacement n'aide pas ). Si je me souviens correctement des leçons sur la mémoire partagée, cela signifie que la mémoire est capturée par un élément lié au serveur X ou à Gnome-Shell qui la libère correctement à la sortie, mais ne l'efface jamais lors de l'exécution (une sorte de ramasse-miettes cassé?). ).
Edit # 3: Je me demande si c'est lié à ceci: https://github.com/mpv-player/mpv/issues/3931
Peut-être que smemstat montrera la mémoire pige (s). Utilisation:
Sudo apt-get install smemstat
Sudo smemstat