Forum : 4 - Techniques et manipulations du son

Gestion de la mémoire

pierrotlo utilisateur non connecté Suisse
Salut tous,

Sous Linux avec une utilisation intensive, en mode station audio, on s'aperçois qu'après plusieurs heures d'utilisation, l'utilisation de la mémoire s'agrandit de manière démesurée.

Sur mon système, 32 Gb de mémoire vive, au bout d'un certain nombre d'heure j'atteins facilement 12 Gb.

Cela semble énorme, cependant je sais que la mémoire à tendance à se fragmenter et que certains logiciels, notamment utilisant le C (meilleure gestion de latence) ne nettoie pas de manière correcte les buffer's (principalement ceux de l'interface graphique).

Aussi j'ai peut-être trouvé une parade (...enfin je pense ?!?):

sudo sysctl -w vm.drop_caches=3


Avec Mate, je plafonne à 1.7 - 2Gb Gb max.
Ceci pourrait être utile pour les petite config.

Donc je l'ai mis dans un cron en root.

Je pense à Librazik, déjà vachement optimisée, mais c'est encore mieux me semble t'il

Qu'en pensez vous ?

minimoineau utilisateur non connecté
Hello pierrotlo!

C'est super intéressant en effet, mais pour un simple utilisateur moyennement à l'aise avec le terminal comme moi, tu pourrais détailler ce que fait cette commande???smile
Je suis preneur si ça me fait consommer moins de mémoire en tout cas!!!

Dens1 utilisateur non connecté France
Hello,

je ne pense pas que ce soit une bonne idée.
Ce que je peux dire, c'est qu'il n'est pas normal que l'utilisation ram se comporte ainsi che pierrotlo. Mais je ne suis pas dans sa bécane, pour moi, il y a un dysfonctionnement, une logiciel qui bugue là dessous.

Pour expliquer la commande,
man sysctl écrit :
NOM
sysctl - Configurer les paramètres du noyau à chaud

-w, --write
Permettre le changement d'un paramètre sysctl.


$ cat /proc/sys/vm/drop_caches && cat /proc/sys/vm/swappiness 
0
10

et : Libérer de la mémoire

Perso pas question de swapper, déjà on travaille en temps réel donc ... Ensuite je pense que la Ram est là pour ça, pour turbiner, c'est quand même elle la plus rapide. Je rapporterait mon utilisation RAM au bout de plusieurs heures d'ardour intensif, et je parie que je dépasse pas, là je ne fais pas d'audio et j'ai ça :
$ free
              total        used        free      shared  buff/cache   available
Mem:       16370928     2183788    12778392      158880     1408748    13737656
Swap:       3905532           0     3905532


Ça me fait penser que j'étais en train d'échaffauder une solution de travail pour carrément tout enregistrer en RAM (oui oui, c'est risqué) durant des heures. Mon script fonctionne bien, j'ai arrêté de l'utiliser car j'étais arrivé à la limite que j'autorise de 2 Go pour le morceau en cours, du coup il me restait à intégrer dans le script que le cas échéant, il faut avertir l'utilisateur (simple formalité) un peu avant, qu'une sauvegarde du fichier a due être faite (en dur, donc un cp /cheminversram/bacasable/fic /home/toto/ardour/fic, fermer ardour, ce qui normalement vide la ram utilisée par ardour, retransférer le fichier dans un point de montage virtuel qui est en fait la ram, et réouvrir dans ardour. Heum, j'espère ne pas vous avoir perdu. Me manque cette dernière touche pour exploiter le ToutEnRam aux petits oignons, avec un hic, qui dit panne de courrant dit une aprem à suer pour 0 Mo de données lol, ce qui me mettrait 100% Ko . Du coup , quand j'aurais un onduleur, je ferais comme ça, pas dans l'immédiat.

N'a t'on pas un param dans librazik d'usine qui interdit le cache ?

Dens1 utilisateur non connecté France
cp -R ...
bien sûr exclaim, même un
mv
, tellement plus radical (par contre ardour va pas comprendre mais il devrait s'en remettre, suffit de pas chercher à sauvegarder quand on ferme.

minimoineau utilisateur non connecté
Tiens, ça me rappelle un vieux tuto qui remonte à déjà bien loin...wink

Dens1 utilisateur non connecté France
Tout à fait, l'idée à germée ici, en autre ou en particulier :-)

Dens1 utilisateur non connecté France
du coup j'ai explorer l'utilisation d'iwatch, notify-send, mise en place d'un daemon init.d pour chapoter tout ça, avec création des points de montage tout ça. Je me suis régalé et juste un peu plus chauve qu'avant hihihi. C'est en standby.

pierrotlo utilisateur non connecté Suisse
@Dens1,

pourquoi est-ce une mauvaise idée ?

Attention je parle bien de la mémoire vive, pas de la mémoire cache qui n'est jamais utilisée chez moi, du moins de ce que je peux voir avec Xosview.
Il s'agit de la mémoire user .
Sur ma machine, je fais pas mal de choses au cours de la journée, c'est sûr. Normalement si je traite de l'audio je la redémarre avant de commencer.
Là ou cela m'intéresse un peu plus, ce sont pour des synthé dédié sur Raspberry Pi, même si le Pi 4 amène plus de mémoire (4Gb).
Bon un petit essai pour cette nuit :
je redémarre la machine, en enlevant du crontab la commande.
Et je laisse tourner sans rien faire dessus et on verra demain matin.

pierrotlo utilisateur non connecté Suisse
Alors effectivement, j'ai fait le test.
1.4 Gb au départ et le lendemain matin après une nuit j'en suis à 2,4 GB
Aucune application n'est ou n'a été lancée.

bda utilisateur non connecté France
J'ai fait le test chez moi hier soir. 153Mo. Ce matin, 154Mo. 1Mo contre 1Go!
Une telle quantité de RAM "perdue dans la nature", ça paraît vraiment beaucoup.
Alors c'est vrai, j'ai une config musclée avec un environnement / système allégé mais quand même.

La seule fois où j'ai eu un problème similaire sur Raspberry Pi 4b, ça venait d'un bug de mon gestionnaire de fenêtre (awesome).

Je pense qu'il y a quand même quelque chose d'anormal...

pierrotlo utilisateur non connecté Suisse
Je pense que c'est du à des fuites de mémoire quelque part dans la wm (mate)
Une interface graphique me semble très légère : JWM