Nettoyage des caches en mémoire

Message
Author
Médor

Nettoyage des caches en mémoire

#1 Post by Médor »

Bonjour,

Voici un pet pour "cleanup_memory" : script de nettoyage des caches en mémoire écrit par Big Bass.

Nouvelle version 20141127 disponible avec gxmessage !

======================================

Ancienne version :

Attention suivant la version de puppy, ce script fait appel à xmessage, dans le cas présent gxmessage ne rend pas correctement l'alignement des valeurs dans les deux tableaux de résultats émanant de la commande free.

Dans mes Lupu j'ai déplacé xmessage dans /usr/X11R7/bin (même procédure que pour yaf-splash version originale) et fait un lien : /usr/bin/@xmessage pointant sur /usr/bin/gxmessage pour avoir un rendu de présentation plus moderne.

Le lien permet de s'affranchir de la réécriture des nombreux scripts existants.
Les commandes originales déplacées dans X11R7 peuvent toujours être appelées par écriture du chemin complet pour un script particulier sans perturber le reste du fait de la position de /usr/X11R7/bin dans la configuration du PATH (etc/profile).

Dans les ASRI 300 le même lien existe mais xmessage a été promptement supprimé !
(Ce lien existe dans les Muppy, Fluppy, Puppeee).

Les Puppies de BK ainsi que Toutou possèdent un lien inverse : @gxmessge sur xmessage...

Suivant le cas éditer /usr/sbin/cleanup_memory en conséquence.

Pour avoir l'application en icône sur le bureau, à l'aide de Rox glisser le fichier cleanup_memory.desktop sur le bureau puis le renommer (clic droit sur l'icône du bureau : Éditer l'objet).

Dans le même genre d'application il existe aussi en complément clean_whiteouts_daemon.pet de Big Bass également, voir entre autres :
http://www.murga-linux.com/puppy/viewto ... 628#462628

Des actions plus spécifiques pour les caches de Mozilla sont aussi possibles par : "about:config", déplacement des caches en ramdisk ou dans /tmp, la modification de la taille des caches par défaut est aussi paramétrable.


Cordialement,
Médor.
Attachments
cleanup_memory-20141127.pet
(4.04 KiB) Downloaded 276 times
Capture-Cleanup_mem.png
(13.25 KiB) Downloaded 1084 times
cleanup_memory.pet
(4.1 KiB) Downloaded 422 times
Last edited by Médor on Sun 08 Feb 2015, 20:36, edited 4 times in total.

User avatar
Jejy69
Posts: 710
Joined: Thu 20 Jan 2011, 18:10
Location: Perpignan

#2 Post by Jejy69 »

Merci pour ce paquet qui fonctionne très bien et qui plus est, très utile.
Juste une petite erreur d'accent du style ( Apr~A"s nettoyage ) mais bon...
J'ai gagné plus de 1Go d'espace disque ! :D

Cordialement.

Médor

xmessage et support de l'UTF-8

#3 Post by Médor »

Bonsoir Jejy69,

La résolution de "l'erreur" d'accent est suggéré en commentaire dans l'exécutable !

Il faut modifier le fichier /root/.Xressources pour le support des caractères accentués en UTF-8 dans xmessage en rajoutant la ligne suivante :
xmessage*international:true

~/.Xressources :

Code: Select all

!*font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-*-*
!*font: -misc-fixed-medium-r-normal--13-120-75-75-c-70-*-*
*font: -misc-fixed-medium-r-normal--14-130-75-75-c-70-*-*
!*font: -misc-fixed-medium-r-normal--15-140-75-75-c-90-*-*
xmessage*international:true
Xft.dpi: 78
(Ce fichier a déjà été modifié sur les ASRI 300).

Cordialement,
Médor.

User avatar
ASRI éducation
Posts: 3197
Joined: Sat 09 May 2009, 12:10
Location: France
Contact:

#4 Post by ASRI éducation »

Merci à Médor pour sa curiosité et le temps passé sur son clavier.
Tu nous as encore déniché une excellente fonction (de surcroît francisée et proposée en paquet prêt à l'emploi).
Je viens de regarder le script de BigBass : c'est 'simple' (quoi que), pratique et efficace (dans la droite ligne de l'esprit Puppy).

Pour ce qui est de xmessage, l'iso finale d'ASRI Edu 300 (prévue dans les heures qui viennent) le réintégrera dans /usr/X11R7/bin (histoire d'harmoniser nos pratiques et de faciliter la vie des utilisateurs). :wink:

Cordialement,

User avatar
ASRI éducation
Posts: 3197
Joined: Sat 09 May 2009, 12:10
Location: France
Contact:

#5 Post by ASRI éducation »

cleanup_memory vient d'être ajouté à l'ASRI Edu300.
:D

User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

#6 Post by Argolance »

Hello,
Merci Médor...
Pour information.
En suivant les conseils donnés ICI, j'ai a une époque utilisé manuellement la ligne de commande suivante en console:

Code: Select all

sync ; echo 3 > /proc/sys/vm/drop_caches
... pour libérer de la mémoire. C'est cette commande qui mise en œuvre par ce script.
J'avoue que pour ma part, je reste perplexe...

Extrait de cette page: http://www.unix.com/unix-advanced-exper ... -idea.html
I've experimented with dropping caches in Linux so many times on our production web server (LAMP).

Linux does such a great job at using all available memory, and reclaiming it when needed, so it is better to let Linux manage those things.

When you drop the cache (or caches), you will see the CPU load go up (sometimes way up) because the cache is gone. Available RAM goes up, but it does not matter because performance is slower because the cache is empty.

Then over time, if you leave the caches off, the performance will suffer because you are not taking advantage of the cache.

Linux tries to use all available RAM, so the caches will fill over time if you don't instruct Linux to drop the caches, and this is a good thing. You will see available RAM go down, but don't worry, it is available for applications when needed because applications take higher priority than cache.

You want Linux to use all the RAM. That is a good thing because the kernel is basically using all available RAM that is not used by applications (and the OS) for cache. Dropping caches has little positive effect on performance. In fact, it tends to have a negative effect. The reason is that you are not really making more RAM available to the apps, because the apps already have been given the RAM needed. You simply are dropping the cache, which degrades performance.
Coridialement.

Médor

cleanup_mozilla.pet

#7 Post by Médor »

Bonjour,

Voici un nouveau pet pour purger plus radicalement Mozilla Seamonkey et Firefox 8)

L'interface à été modifiée pour incorporer le dernier script de Big Bass :
http://www.murga-linux.com/puppy/viewto ... 312#565312

Cordialement,
Médor.

PS: fermer Mozilla avant de lancer la purge...
Attachments
cleanup_mozilla.pet
Veuillez utiliser la dernière version 20141127
(4.31 KiB) Downloaded 366 times
Last edited by Médor on Thu 27 Nov 2014, 02:56, edited 2 times in total.

jplt

#8 Post by jplt »

Hello,

j'ai trouvé ce script http://www.commandlinefu.com/commands/v ... -database. mais pas encore testé.

Au lieu de supprimer les base de donnée sqlite on les vide !

A tester ...

Médor

#9 Post by Médor »

Bonjour jplt,

Dans les scripts proposés sur le lien, find renvoie tous les fichiers sqlite de ~/.mozilla/firefox/ :!:
Par sécurité, j'ai testé le script en copiant quelques fichiers sqlite dont cookies.sqlite dans /tmp/1/
J'ai ensuite appliqué la commande :

Code: Select all

find /tmp/1/ -name '*.sqlite' -exec bash -c "<<<'vacuum;' sqlite3 {}" \;
Pour certains leurs tailles demeurent inchangées, pour cookies.sqlite par exemple la taille résultante est inférieure cependant je vois toujours à l'intérieur du fichier des références d'adresses de murga-linux.com, asri.edu.tuxfamily.org, etc. :!:
Donc ça ne vide pas totalement les données collectées dans ces fichiers sqlite :!:

En attendant mieux, voici la mise à jour de cleanup_mozilla fr (rétro-compatible) utilisant maintenant directement gxmessage avec l'alignement correct des tableaux de résultats des commandes free, etc.
Sur la capture la taille de ~/.mozilla n'est pas significative ayant déjà purgé le répertoire, par contre à présent sa taille est bien indiquée même si ~/.mozilla est un lien pointant dans /mnt/home/* ;)


Cordialement,
Médor.
Attachments
cleanup_mozilla-20141127.pet
(4.26 KiB) Downloaded 225 times
Capture_2014-11-24.jpg
(63.19 KiB) Downloaded 404 times
Last edited by Médor on Thu 27 Nov 2014, 02:50, edited 1 time in total.

jplt

#10 Post by jplt »

Hello médor,

j'ai aussi testé le script les bases sqllite ne change pas de taille donc aucun interet pour moi.

J'ai adapter ton script à mes besoins hors j'ai cette erreur quand je le lance dans une console :
tee: /proc/sys/vm/drop_caches: I/O error
Je sais que les gouts et les couleurs ... mais j'ai changé ce bleu qui me fait rappeler un certain ecran bleu de la mort d'un certain OS proprio que je n'utilise plus depuis au moins 2000 :wink:

Médor

#11 Post by Médor »

Moi le fond bleu ça me rappelle Norton Commander sous DOS, ainsi que Midnight Commander que j'utilise tous les jours :lol:

Cordialement,
Médor.

jplt

#12 Post by jplt »

Cette commande m'a l'air de mieux marcher !
`sync;echo 3 > /proc/sys/vm/drop_caches `
Si quelqu'un peut expliquer la difference entre :

`sync ; echo 3 | tee /proc/sys/vm/drop_caches `
et
`sync;echo 3 > /proc/sys/vm/drop_caches `
Je suis preneur.

User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

#13 Post by Argolance »

Bonjour,
Merci Médor.
Si quelqu'un peut expliquer la difference
:arrow: Voir ici?

Cordialement.

jplt

#14 Post by jplt »

Bonjour Argolance,

merci pour le lien.

D'apres http://www.bash-linux.com/doc-bash-man.php sync nettoie le systeme de fichier ,ensuite un affichage de 3 ! et ensuite mystere !!!

User avatar
ASRI éducation
Posts: 3197
Joined: Sat 09 May 2009, 12:10
Location: France
Contact:

#15 Post by ASRI éducation »

Médor wrote:...voici la mise à jour de cleanup_mozilla fr (rétro-compatible) utilisant maintenant directement gxmessage avec l'alignement correct des tableaux de résultats des commandes free, etc.
Merci Médor.
Cordialement,
Projet ASRI éducation => [url=http://asri-education.org/]Association[/url] | [url=http://forum.asri-education.org/]Forum[/url] | [url=http://dl01.asri-education.org/]Dépôt[/url] | [url=http://kids.asri-education.org/]Espace kids[/url]

Médor

#16 Post by Médor »

Bonjour,

Pour supprimer l'erreur I/O produite par : `sync; echo 3 | tee /proc/sys/vm/drop_caches`, je l'ai modifié en : `sync ; echo 3 > /proc/sys/vm/drop_caches`, la commande tee est en trop et provoque l'erreur car il suffit d'injecter une valeur 1, 2 ou 3 dans drop_caches pour provoquer le nettoyage.
Voir ce message
http://linux.die.net/man/5/proc wrote:/proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.

To free pagecache, use echo 1 > /proc/sys/vm/drop_caches; to free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches; to free pagecache, dentries and inodes, use echo 3 > /proc/sys/vm/drop_caches.

Because this is a non-destructive operation and dirty objects are not freeable, the user should run sync first.
(La valeur par défaut dans drop_caches est : 0).

J'ai donc modifié le pet sur mon message précédent.

Attention à l'interprétation des valeurs de la commande free :!:

À la première ligne (Mem), la valeur de la mémoire libre de la colonne free semble bien faible mais en réalité la mémoire disponible est bien supérieure.
La valeur de la mémoire disponible se trouve à la deuxième ligne (-/+ buffers/cache) de la colonne free à comparer entre Avant/Après.

Pour info :
le cache (buffers/cache) stocke les informations lues et écrites afin de réduire les accès disques et augmenter les performances !
Et le cache peut être libéré à tout moment :!:

Voir ce lien et celui-ci.



Cordialement,
Médor.
Last edited by Médor on Sun 08 Feb 2015, 10:37, edited 2 times in total.

jplt

#17 Post by jplt »

Merdi Médor pour ces explications.

Médor

Auto clean mem

#18 Post by Médor »

Bonjour,

Si vous avez l'obsésion de libérer la mémoire RAM, voici un script tout simple exécuté en arrière plan qui purge automatiquement la ram toutes le 20 minutes :!:

On peut changer le delai en changeant la valeur : sleep 20m, le premier délai (sleep 1m) permet au bureau d'être bien en place au lancement de X.
(sleep Nombre[suffix] : N défaut en secondes (sans s), Nm en minutes, Nh en heures, Nd en jours).

/root/Startup/auto_clean_mem

Code: Select all

#!/bin/sh
#auto_clean_mem
#Médor 20150208
sleep 1m
while [ 1 ]; do
sync; echo 3 > /proc/sys/vm/drop_caches
sleep 20m
done
Rendre le script exécutable (chmod +x).

Ou installer le pet ci-joint ;)


Cordialement,
Médor.
Attachments
auto_clean_mem.pet
(513 Bytes) Downloaded 303 times

User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

#19 Post by Argolance »

Merci Médor!

Cordialement.

Pelo

obsession !

#20 Post by Pelo »

Si vous avez l'obsésion de libérer la mémoire RAM, obsession ! pourquoi obsession ? le soucis tout simply.
J'avais en mémoire que des choses existaient. Ben ouais, Médor avait déjà fait ce pet. Mais il y en à d'autres, qui sont dans les oubliettes, effacés à jamais de notre mémoire vive, enfouis dans notre mémoire morte, dirait Freud, dans notre inconscient.
Mais toi Médor, toujours sur le fil du rasoir avec la Fujitsu, tu manages çà en pro, les yeux rivés sur les infos sur ton écran, à droite.
En tous cas, au reboot, ce salopard de processor refait ce que j'ai défait !
voir le pet d'Argolance 2017 qui est bien fait.

Post Reply