Vive la mémoire... LIBRE !!!

Message
Author
augras
Posts: 1487
Joined: Mon 11 Nov 2013, 17:37
Location: france

#46 Post by augras »

Dans ton script de départ la fenêtre était dimensionnée correctement pour tout afficher sans rien avoir à faire : G="g 72x15-250+300". La police n'était pas présente. (il me manquait en fait une ligne pour le swap... zéro partout puisque je n'en ai pas).
Dans le dernier je ne peux pas jouer avec l'ascenseur vertical, obligé d'agrandir la fenêtre : Geom="g 73x12-250+300". La police est présente.
En mettant les paramètres suivants c'est parfait : Geom="g 77x16-250+300".
Philippe

jplt

#47 Post by jplt »

Encore merci pour le script la derniere version marche tres bien, je l'ai adapaté à mes besoins (enlevé la transparence dans urxvt).

Je confirme en comparant avec les versions précédentes Geom="g 77x16-250+300" me va tres bien sachant que je me fiche un peu de l'affichage !

Je penche aussi pour l'idée de le faire tourner via un cron.

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#48 Post by musher0 »

@jplt : De rien !

@jplt et @augras :

Voici donc une version 4 avec fonction CHRONO
# V. 3c : Ajouté % de MEV récupérée dans barre de titre. 6 févr. 2015, musher0
# V. 4 : Ajouté fonction CHRONO|suivi (suggestion d'augras) pour lancement par
# ______ PSchedule. Changé "." à "¤" pour faciliter répérage dans fichier
# ______ d'historique. 7 févr. 2015, musher0
Il suffit d'ajouter une chaîne de caractères quelconque au nom du script pour que
l'affichage soit enregistré dans un fichier d'historique à ~/my-documents/tmp au
lieu d'être affiché à l'écran. Par ex. : < cleanup_memory4 bof >

Au moment voulu, vous pourrez consulter cet historique dans un terminal en tapant :

Code: Select all

more ~/my-documents/tmp/suivimev.his
Je suppose que vous savez comment incorporer un script à PSchedule pour le faire
tourner à chaque ½ heure? :)

Quant à la géométrie de la fenêtre, je n'ai touché à rien parce que le changement
utilisé par augras fait laid sur mon écran. Mais vous adaptez à votre goût, bien sûr.

(Je travaille encore avec un écran de 1280x1024 pixels, qui n'a pas l'air de vouloir
flancher ! Vous avez de ces nouveaux écrans plus larges, sans doute. je dis ça,
mais je ne comprends toujours pas pourquoi une géométrie n'est pas universelle,
à part les explications suggérées hier.)

Merci de votre esprit coopératif, et bon week-end ! À+

musher0
Attachments
cleanup_memory4(1).zip
(1.96 KiB) Downloaded 310 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

jplt

#49 Post by jplt »

Un grand merci musher0.

Je vais de ce pas créer une tache cron,pour ceux qui serait intéréssé, script s'ececutant toutes les 15 minutes :

Code: Select all

*/15 * * * *        /root/my-applications/bin/cleanup_memory toto

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

#50 Post by ASRI éducation »

jplt wrote:Je vais de ce pas créer une tache cron,pour ceux qui serait intéréssé, script s'ececutant toutes les 15 minutes :

Code: Select all

*/15 * * * *        /root/my-applications/bin/cleanup_memory toto
Je n'ai jamais essayé de créer une tâche cron.
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]

augras
Posts: 1487
Joined: Mon 11 Nov 2013, 17:37
Location: france

#51 Post by augras »

Merci Musher0,
Pschedule est une bonne interface pour programmer des tâches cron : là jplt donne la ligne a mettre directement dans le fichier. Merci aussi.
Philippe

jplt

#52 Post by jplt »

[Je diverge du sujet principale]
Dans une console :

Code: Select all

crontab -e
permet d'editer/creer les taches que vous avez creer avec pschedule ou creer manuellement.
J'ai pas reussi a creer avec pschedule une tache toute les 15 minutes ! Si vous avez une reponse cela m'interesse ?
{/Je diverge du sujet principale]

augras
Posts: 1487
Joined: Mon 11 Nov 2013, 17:37
Location: france

#53 Post by augras »

Je 'y suis pas arrivé non plus !
On peut créer une tâche pour une date précise à une heure précise, ou bien toujours la même minute de chaque heure... mais pas trouvé pour une répétition régulière comme toutes les 15 mn...obligé de corrigé à la main comme toi.
Philippe

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#54 Post by musher0 »

Je crois que Médor vient de trouver une solution au problème de chrono ici :
http://murga-linux.com/puppy/viewtopic. ... 916#826916
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#55 Post by musher0 »

Rebonjour.
Une autre évolution... Je sais, je suis maniaque. :)
Voici pourquoi :
# V. 4a : Ajouté choix de "chrono", "simple", "histo", "flafla", "bling" ou
# rien comme param. de départ. Voir l. 26-31 ci-dessous. Incorporé correctif
# d'augras concernant la taille de la fenêtre. Ajouté des commentaires.
(...)
CHRONO="$@" # Chaîne de caractères peut maintenant être :
# "chrono" : enregistre sous forme d'historique;
# "simple" : param. par défaut de l'usager pour son terminal;
# "histo" : combine les deux ci-dessus. Pour consulter l'historique.
# "flafla" : }
# "bling" : } param. urxvt avec transparence spécifiques au présent script.
# ou rien }
je me suis dit : "si on crée un historique, il faut une façon de le visionner,"

@augras
Le "correctif d'augras", c'est à propos de l'affichage qui se dédouble quand on
bouge la glissière, c'est ça ?

À+

musher0

~~~~~~~~~~~~~

Voici le code :

Code: Select all

#!/bin/ash
# /root/my-applications/bin/cleanup_memory4a
#
# D'après : 'Simple tool for puppy linux to clean caches',
# par Joe Arose, alias "big_bass", créé pour son "Puppy Slaxer-4.12".
#
# Mise en forme et ajouts par musher0, 20 mai 2013;
# rév. 30 janv. - 08 févr. 2015.
# Merci à jplt et à Médor de leurs suggestions sur le forum Puppy.
#
# V. 3a : Usage accru des chaînes économise 1,4 secondes. musher0
# V. 3b : Enlevé référence au dossier "~/my-applications/Systeme" (merci à
# jplt), et adopté mise en forme plus claire pour ces lignes-ci. musher0
# V. 3c : Ajouté % de MEV récupérée dans barre de titre. 6 févr. 2015, musher0
# V. 4 : Ajouté fonction CHRONO|suivi (suggestion d'augras) pour lancement par
# PSchedule. Changé "." à "¤" pour faciliter répérage dans fichier d'historique.
# 7 févr. 2015, musher0
# V. 4a : Ajouté choix de "chrono", "simple", "histo", "flafla", "bling" ou
# rien comme param. de départ. Voir l. 26-31 ci-dessous. Incorporé correctif
# d'augras concernant la taille de la fenêtre. Ajouté des commentaires.
# 8 févr. 2015, musher0
#################
# set -xe # pour débogage

CHRONO="$@" # Chaîne de caractères peut maintenant être :
# "chrono" : enregistre sous forme d'historique;
# "simple" : param. par défaut de l'usager pour son terminal;
# "histo" : combine les deux ci-dessus. Pour consulter l'historique.
# "flafla" : }
# "bling" :  } param. urxvt avec transparence spécifiques au présent script.
# ou rien    }

# variables
MAPPS="/root/my-applications";MMLBR="$MAPPS/mem_libr.txt";Z=""
RMPL="replaceit --input=$MMLBR";LIGN=".-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-."
HISTORIQ="/root/my-documents/tmp/suivimev.his"

rm -f $MMLBR # Jeter l'ancien.

# fonction
suivi ()
{
[ ! -f $HISTORIQ ] && echo > $HISTORIQ
echo "`date | awk '{ print $1". "$3" "$2". "$6", "$4" "$5 }'`
$TITR
`cat $MMLBR`
¤" >> $HISTORIQ
}

case ${LANG:0:2} in # Param. pour less

	fr)MEV="'q' pour quitter             =-=-=-=           Mémoire vive libérée"
		AV="Avant";AP="Après"
		Prem="(En Mo)      total        utilisé      libre        partagé    tampons" ;;
	
	*)MEV="'q' to quit                   =-=-=-=                        Freed RAM"
		AV="Before";AP="After"
		Prem"(In Mb)      total         used         free       shared      buffers" ;;
		
esac # langues, 1

FreeMem ()
{
COUP="$Prem
`free -m | tail -n 3`
"
} 

FreeMem # L'avant
COUP="$LIGN $AV $LIGN
$COUP"
a="`grep mFree /proc/meminfo | awk '{print $2}'`"
BEAU="$COUP"

sync ; echo 3 > /proc/sys/vm/drop_caches;wait # Action

FreeMem # L'après
COUP="$LIGN $AP $LIGN
$COUP"
b="`grep mFree /proc/meminfo | awk '{print $2}'`"
echo -e "$BEAU$COUP¤" > $MMLBR

# Param. urxvt
c="`expr $b - $a`";c="`expr $c / 1000`" # calculs
d="`awk 'NR=="3" { print $2 }' $MMLBR`"
e="`echo \"$c $d\" | awk '{ print $1/$2*100 }'`" # Calcul avec awk, car
e="${e:0:4} %" # expr ne peut pas diviser des nombres à virgule flottante.
f="`grep wapC /proc/meminfo | awk '{print $2}'`" # État du fichier d'échange

case ${LANG:0:2} in # Titre

	fr)[ $f -eq 0 ] && INCHANG="fich. d'éch. non utilisé" || INCHANG="fich. d'éch. UTILISÉ";TITR="Libéré ± $c Mo | $e ; $INCHANG."
# Traduction
	$RMPL "-/+ buffers:" " ± tampons :";$RMPL Swap Éch.;$RMPL "Mem:" Mém. ;;
	
	*)[ $f -eq 0 ] && INCHANG="swap file not in use" || INCHANG="swap file IN USE";TITR="Freed ± $c Mb | $e ; $INCHANG." ;;
	
esac # langues, 2

case $CHRONO in

	chrono)# Pour usage chronométré en arrière plan.
		suivi ;; 	# S'utilise avec PSchedule ou cron.
		# Enregistre dans fichier d'historique; n'affiche rien.

	simple)# .Xresources et .Xdefaults de l'usager, sauf pour la taille
		# et le titre.
		urxvt -T "$TITR" -g 72x15 &>/dev/null -e less -L -~ -q -P "$MEV" $MMLBR ;; 
		# Le tableau se dédouble quand on bouge la glissière. Si on enlève 
		# la glissière (param. "+sb"), plus de souci. # Merci à augras d'avoir
		# remarqué le probl. de la taille de la fenêtre.
		
	histo)suivi
		[ ${LANG:0:2} = "fr" ] && ENTETE="Historique d'occupation mémoire" || ENTETE="History of RAM usage"
		urxvt -T "$ENTETE" -g 72x15 &>/dev/null -e less -L -~ -q -P "$MEV" $HISTORIQ
		;; # Combine "chrono et "simple". Pour consulter l'historique.

	*|flafla|bling)# Affichage avec transparence et param. propres à ce script.
		Geom="g 73x12-250+300";TRNSP="tr -tint grey79 -sh 99"
		BL="white";CoLR="fg $BL -bg AntiqueWhite4 -cr $BL" 
		FNT="fn xft:Monaco:pixelsize=13:autohint=true" # On peut remplacer 
		# la police "Monaco" par toute police TTF dite "mono".
		
		urxvt -$Geom -$CoLR -$TRNSP -$FNT -T "$TITR" -b 12 +sb &>/dev/null -e less -L -~ -q -P "$MEV" $MMLBR ;; # Afficher 

esac

[ "`pidof -s aepanel`" ] && Z="aepanel" && kill -s 15 "`pidof -s $Z`" && sleep 0.1s && $MAPPS/ae/aepanel-menu.sh & # si aepanel actif.
### 30 ###
# set +xe
Attachments
cleanup_memory4a.zip
Le même script, archivé.
(2.52 KiB) Downloaded 245 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#56 Post by musher0 »

Re-re-bonjour.

J'aimerais remonter à un niveau de discussion plus général, si vous permettez.

Quand j'ai adapté ce petit script, c'était pour moi, surtout quand j'utilise pekwm,
qui est capricieux au plan de la mémoire.

Mais vu l'intérêt suscité ici par sa publication (en particulier la suggestion de
"cron-er" ce petit script en dit long, d'après moi), je me demande s'il n'y a pas
anguille sous roche. On dirait que ce n'est pas uniquement pekwm.

"Puppy a-t-il un problème de perte de mémoire quand on laisse son ordi ouvert
pendant longtemps, disons 2-3 jours ?"

Je me rappelle avoir noté ce problème à mes débuts dans Puppy. J'avais posé la
question directement à M. Kauler. Il m'a répondu qu'il n'avait jamais remarqué, il
ne savait pas. Il ne laissait jamais son ordinateur ouvert pendant des jours, il
faisait des sessions relativement courtes et fermait son ordinateur après.

Voici mes questions :
Puppy gère-t-il bien sa mémoire vive ?
En consomme-t-il plus ou moins que d'autres distros ?
Avons-nous un problème de "fuites de mémoire"? ( En latin "memory leakages" ;) )

Je vous passe le micro.

À+

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

jplt

#57 Post by jplt »

Je ne pourrais pas aider sur ce sujet sachant que j'utilise l'ordi de facon ponctuel.

did18
Posts: 417
Joined: Wed 19 Nov 2014, 22:27

#58 Post by did18 »

Bonsoir

Voici le débat relancé... (je veux parler de l'opportunité de laissé l'ordinateur allumé ou de l'éteindre en fin d'utilisation).

Ce débat mérite à lui seul (a mon avis) l'ouverture d'une autre discussion...

Les POUR diront que cela économise le HDD (puisque moins de démarrage)

Les CONTRE prétexteront (à juste titre) une économie d'énergie.

Le bon sens (économique) préconiserai une extinction en fin de service, ne serai-ce que pour vider les tampons mémoire et autres liens de téléchargements et au vu des prix des matériels qui a fortement baissé ces dernières années autant aussi économiser l'énergie... (Il paraît que c'est bon pour la planète ;-)
Naturellement il en va tout autrement des serveurs d'applications et autres 'stockeurs' de données qui eux doivent tourner H24...

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#59 Post by musher0 »

Salut didier.

Oui ce serait bien d'ouvrir un fil sur le sujet : ordi ouvert 24 h ou non.

Mais pour l'instant, ce que je veux savoir, c'est si tous les Puppys perdent tranquillement
de la mémoire :) pendant leur session, ou si c'est seulement dans ma tête ? :) :P :lol:
Pitié, les gars... :)

À+

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Tomasi
Posts: 48
Joined: Wed 14 Dec 2011, 21:12

#60 Post by Tomasi »

Bonjour,
je peux effectuer un test.
Mais pour que ce soit probant, il faudrait un semblant de protocole.
Je peux effectuer un test sur 6 pc pendant 4 jours (jusqu'au vacances) en les laissant allumer. tous sous une pupplet basée sur asri300
Juste me dire quel script prendre pour le test

did18
Posts: 417
Joined: Wed 19 Nov 2014, 22:27

#61 Post by did18 »

Bonjour
musher0, vois si dans tes scripts tu n'a pas fait de boucle 'mal fermée' ou un 'timer' inutile, parfois une activité processeur peut être révélatrice de ce genre de soucis...

Il y a aussi une chose à ne pas négliger la ou les barrette(s) mémoire elle même... Même si ces composants sont statique (donc en théorie peu sujet à panne) , un peu de poussière au mauvais endroit peu parfois engendrer des comportements critique. Si tu as démonté pour une raison X ton ordi récemment, tu n'est pas à l’abri d'avoir (par mégarde) bougé un peu les barrettes mémoire. Rien de bien méchant et un p'tit coup de bombe à air et tout repart...

Autre recours, l'utilitaire mémoire du BIOS, te donnera l'état de la mémoire système.

Après, question gestion de mémoire, je pense qu'il y a sur ce site, des personnes bien plus qualifiées que moi pour te répondre et si tu as pu éliminer une source de panne 'matériel', cela leur facilitera certainement le dépannage.

A+

augras
Posts: 1487
Joined: Mon 11 Nov 2013, 17:37
Location: france

#62 Post by augras »

Bonsoir,
Le constat que je peux faire est qu'un poste qui reste allumé sans y toucher ne voit pas sa consommation mémoire s'envoler, ni même bouger : valable même pour windows.
Par contre quand on travaille sur le poste la mémoire n'est pas toujours, même plutôt rarement complètement libérée. L'exemple typique est le navigateur internet : il consomme par exemple 500 Mo,il a vraiment beaucoup d'onglets ouverts, je ferme tous les onglets sauf un... et l'utilisation de la mémoire ne diminue pas du tout ! Même en fermant complètement l'application on ne récupère pas tout.
D'où l'utilité de ton script !
Philippe

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#63 Post by musher0 »

Note, minuit une, 10 févr.15 :
S.v.p. remplacer ce script par celui deux messages plus bas. Merci. musher0
~~~~~~~~~~
Tomasi wrote:Bonjour,
je peux effectuer un test.
Mais pour que ce soit probant, il faudrait un semblant de protocole.
Je peux effectuer un test sur 6 pc pendant 4 jours (jusqu'au vacances) en les laissant allumer. tous sous une pupplet basée sur asri300
Juste me dire quel script prendre pour le test
Wow! Merci de ton offre généreuse, Tomasi.
J'accepte avec grand plaisir.
Avec 6 ordis, on va savoir pour vrai.

Eh bien, j'utiliserais un petit script fournissant la date puis enregistrant free dans
un fichier d'historique, toutes les heures ou demi-heures. Presque ce que fait
cleanup_memory4a ci-dessus en mode chrono, sans le "cleanup"... On pourra ainsi
dessiner une courbe à la fin. Quelque chose comme ceci, avec PSchedule :

Code: Select all

#!/bin/sh
# /root/my-applications/bin/test-mem.sh
# But : observer si Puppy perd de la MEV disponible avec le temps.
# S'utilise avec PSchedule sur un ordi ouvert 24 h et plus, pour vérifier.
# musher0, 9 février 2015
####
TEST="/root/my-documents/test-mem.his" # variables
LIGN=".-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-."

echo "`date | awk '{ print $1". "$3" "$2". "$6", "$4" "$5 }'` $LIGN" >> $TEST
# echo "$LIGN $LIGN" >> $TEST
echo "(En Mo)      total        utilisé      libre        partagé    tampons" >> $TEST
free -m | tail -n 3 | head -n 1 >> $TEST # compte rendu
echo "¤
¤" >> $TEST # délimiteur
qui donne un compte rendu simple et facile à lire. (Voir illustration ci-jointe.)

Si vous avez des améliorations à proposer, c'est le moment ! :)

Pour ma part, je sais que ma MEV libre passe de +/- 72 % (avec pekwm et opera
chargés) à +/- 22 % en à peu près quatre heures. Il me semble que je ne fais rien
d'extraordinaire avec mon ordi. (Bon d'accord, beaucoup d'édition de scripts et de
tests avec geany...) ;)

Encore merci à Tomasi.

musher0
Attachments
lignes-test-mem.jpg
EST=Eastern Standard Time == HNE=Heure normale de l'Est;
mem=mém. :)
(9.04 KiB) Downloaded 219 times
Last edited by musher0 on Tue 10 Feb 2015, 05:02, edited 1 time in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#64 Post by musher0 »

@Philippe : Merci de ton compte rendu ! :)
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#65 Post by musher0 »

Re-bonjour.

J'ai voulu faire un pré-test maison en demandant à PSchedule de faire tourner le
script chaque minute, et soit PSchedule ne fonctionne pas, soit je ne sais pas m'en
servir comme il faut.

Mais je ne vais pas en faire une maladie. Merci au confrère Médor pour sa trouvaille
d'hier (voir URL dans le script), que j'ai adaptée ainsi :

Code: Select all

#!/bin/sh
# /root/my-applications/bin/test-mem2.sh
# But : observer si Puppy perd de la MEV disponible avec le temps.
# On dirait que PSchedule ne fonctionne pas ? 
# Merci à Médor pour la boucle de temps "while" ci-dessous.
# musher0, 9 février 2015
####
TEST="/root/my-documents/test-mem.his" # variables
LIGN=".-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-."

function test {
echo "`date | awk '{ print $1". "$3" "$2". "$6", "$4 }'` $LIGN" >> $TEST
# echo "$LIGN $LIGN" >> $TEST
echo "(En Mo)      total        utilisé      libre        partagé    tampons" >> $TEST
free -m | tail -n 3 | head -n 1 >> $TEST # compte rendu
echo "¤
¤" >> $TEST # délimiteur
}

# De : auto_clean_mem, par Médor, 20150208. Source :
# http://murga-linux.com/puppy/viewtopic.php?p=826916&sort=lastpost#826916
# Récupéré le 09.02.2015 à 13:43:49.
#
# sleep 1m 
while [ 1 ]; do 
	test 
sleep 1h # [<=- Mettre une heure (1h) ou 30 minutes (30m) ici. musher0 ]
done
(Se rappeler qu'il faut rendre un script exécutable avant de le lancer.)

Avec la sous-routine temporelle de Médor, le script ci-dessus fonctionne bien sur
ma machine, "ça marche comme sur des roulettes", ;) comme on dit en québécois !

À+

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Post Reply