Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Problème affichage mémoire vive
Envoyé par: gk-1973

Bonjour,

j'ai un soucis d'affichage de la mémoire vive.

[root@thuburbo root]# free
total used free shared buffers cached
Mem: 2055452 2015756 39696 0 128336 1199368
-/+ buffers/cache: 688052 1367400
Swap: 1020116 0 1020116

Normalement les 2 Go sont pris.

Un top trié par utilisation de la mémoire donne :

10:18:13 up 7 days, 19 min, 9 users, load average: 0,00, 0,00, 0,07
171 processes: 131 sleeping, 1 running, 0 zombie, 39 stopped
CPU states: cpu user nice system irq softirq iowait idle
total 0,0% 0,0% 0,0% 0,0% 0,0% 0,0% 99,8%
cpu00 0,0% 0,0% 0,0% 0,0% 0,1% 0,0% 99,8%
cpu01 0,0% 0,0% 0,0% 0,0% 0,0% 0,0% 100,0%
cpu02 0,0% 0,0% 0,0% 0,0% 0,0% 0,0% 100,0%
cpu03 0,0% 0,0% 0,3% 0,0% 0,0% 0,0% 99,6%
Mem: 2055452k av, 2015728k used, 39724k free, 0k shrd, 128364k buff
847536k actv, 656992k in_d, 74716k in_c
Swap: 1020116k av, 0k used, 1020116k free 1199384k cached

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
4266 gdm 15 0 23716 23M 7916 S 0,0 1,1 6:24 0 gdmgreeter
20342 ed 15 0 15460 15M 4328 S 0,0 0,7 1:22 3 emacs
11262 ed 15 0 15144 14M 4280 S 0,0 0,7 1:03 2 emacs
14661 ed 15 0 13864 13M 4272 S 0,0 0,6 5:00 1 emacs
27503 ed 15 0 13704 13M 4340 S 0,0 0,6 2:12 1 emacs
3566 cs3 15 0 12812 12M 896 T 0,0 0,6 28:00 0 sim.exe
29168 ed 15 0 11992 11M 4320 S 0,0 0,5 6:01 3 emacs
26426 cs3 15 0 10436 10M 4320 S 0,0 0,5 3:18 1 emacs
5024 cs3 15 0 10260 10M 4324 S 0,0 0,4 6:11 1 emacs
28884 cs3 15 0 10108 9,9M 4320 S 0,0 0,4 3:07 0 emacs
6277 cs3 15 0 9964 9964 4264 S 0,0 0,4 2:40 3 emacs

Il ne semble pas y a voir une grosse utilisation de la mémoire.

Or, si je lance gnome-system-monitor, j'ai seulement 653 Mo / 2 Go d'utilisés.

Je ne comprends pas.

Y a t'il un autre moyen de voir l'usage réel de la mémoire ?
Je ne vois pas ou sont partis les 2 Go

Merci d'avance.

Poste le Thursday 6 March 2008 10:20:59
Répondre     Citer    
Re: Problème affichage mémoire vive

Un classique du monde Unix : ne pas oublier la mise en cache des fichiers !

C'est en forgeant qu'on devient forgeron, et c'est en sciant que Léonard De Vinci !

Mon site perso

Poste le Thursday 6 March 2008 10:27:59
Répondre     Citer    
Re: Problème affichage mémoire vive
Envoyé par: gk-1973

Et donc ?
De quoi s'agit-il ?
Qui utilise la mémoire ?
Merci d'avance.

Poste le Thursday 6 March 2008 10:57:16
Répondre     Citer    
Re: Problème affichage mémoire vive

Ben les fichiers mis en cache !

C'est en forgeant qu'on devient forgeron, et c'est en sciant que Léonard De Vinci !

Mon site perso

Poste le Thursday 6 March 2008 11:50:03
Répondre     Citer    
Re: Problème affichage mémoire vive

Linux utilise au mieux la mémoire. Celle qui ne serait pas utile à autre chose est utilisée quand même (autrememt elle serait gaspillée) pour conserver en mémoire les bouts de fichiers récemment utilisés, de sorte qu'à la prochaine lecture il n'est pas utile d'accéder au disque.

Donc c'est normal que la RAM soit utilisée par le cache des fichiers. Autrement elle serait véritablement gaspillée car inutile (alors qu'elle a été payée et que sa consommation ne dépend guère de son utilisation).

En un mot, tout va bien, pas besoin de s'inquiéter.

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Thursday 6 March 2008 12:14:47
Répondre     Citer    
Re: Problème affichage mémoire vive
Envoyé par: gk-1973

Merci à Basile STARYNKEVITCH pour cette explication.
Je comprends maintenant.
Y a t'il un moyen de voir quels sont ces fichiers qui utilisent la mémoire ?
Question bête peut-être...

Poste le Thursday 6 March 2008 13:22:01
Répondre     Citer    
Re: Problème affichage mémoire vive

Citation
gk-1973
Y a t'il un moyen de voir quels sont ces fichiers qui utilisent la mémoire ?

D'abord, quelle importance? Ce sont les fichiers dont le noyau estime qu'ils pourraient re-servir.

Ensuite, pourquoi faire? Il faut laisser le noyau faire son travail (et on imagine bien que le code qui servirait à afficher cette information de manière lisible serait peut-être complexe, donc encombrerait le noyau et la mémoire inutilement).

Enfin, c'est peut-être possible en se plongeant dans les méandres obscurs des pseudo systèmes de fichier /proc ou /sys, ou bien en lisant programmatiquement /dev/kmem, et on peut toujours, c'est l'intérêt du logiciel libre, améliorer le noyau en codant ce qui vous convient. Pour un débutant, je conseille de s'attaquer à des problèmes plus simples.

Et surtout, ce sont probablement des fragments de fichiers qui sont dans le cache, pas des fichiers entiers. Alors j'ai du mal à imaginer à quoi peut te servir cette information, sauf si tu étais un spécialiste du noyau (et dans ce cas, tu n'aurais pas posé la question ici mais au bon endroit, probablement une liste sur kernel.org).

Bref,je n'ai jamais eu besoin de cette info, et pourtant je suis informaticien de métier (unixien depuis 1985), et Linuxien depuis 1993 environ.

Mais il te suffit ];-) de te plonger dans le code source du noyau pour trouver les éléments de réponse. Bonne lecture! :-p


----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Thursday 6 March 2008 14:06:14
Répondre     Citer    
Re: Problème affichage mémoire vive
Envoyé par: gk-1973

En fait, je remarque que la machine ne libère pas le cache.
Les programmes qui ont besoin de mémoire ont du mal à se lancer !
Donc, plutôt que rebooter, je préfererais purger !

Poste le Friday 7 March 2008 09:10:40
Répondre     Citer    
Re: Problème affichage mémoire vive

Citation
gk-1973
En fait, je remarque que la machine ne libère pas le cache.!
Pourquoi le ferait-elle? L'intérêt d'un cache est précisement d'y conserver les données le plus longtemps possible, jusqu'à ce que ce bout de mémoire soit utilisé à autre chose.


Citation
gk-1973
Les programmes qui ont besoin de mémoire ont du mal à se lancer !
J'observe exactement le contraire. Un programme dont le texte (càd le code) est déjà dans le cache se lance plus rapidement (par exemple, quand on répète deux fois une commande, la 2e fois ça va plus vite) parce que le segment texte (par exemple les sections .text et .rodata du fichier ELF, qui est l'exécutable) du programme est déjà en mémoire.

Tu devrais vraiement expliquer et si possible mesurer ce que tu avances. Je suis très sceptique, car c'est tout à fait contraire à mes observations et mes mesures.

Maintenant si c'est vraiement important pour toi, tu pourrais y remedier, soit en configurant ton système finement (peut-être avec des démons comme preload), soit en améliorant le noyau.

Dans tous les cas de figure, une connaissance fine de Linux et du noyau est nécessaire.
[v]Et le caractère néophyte de tes questions me font croire que tu ne l'as pas encore.[/v]

J'aimerais vraiement comprendre pourquoi tu affirmes que:
Citation
gk-1973
les programmes qui ont besoin de mémoire ont du mal à se lancer !

De quels programmes exactement s'agit il, quelle est ta configuration exacte, comment as tu précisément mesuré ce mal? Quelles mesures exactes as tu obtenues? Sois précis, factuel, et quantitatif, s'il te plait!

Tant que tu ne donnes pas de réponse précise et quantifiée, je resterais très sceptique!

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Friday 7 March 2008 09:24:50
Répondre     Citer    
Re: Problème affichage mémoire vive
Envoyé par: gk-1973

il semblerait que le problème vienne d'un programme FORTRAN mal écrit.
Cette machine est une station de calcul.
Lorsque l'utilisateur exécute son programme, il met un certain temps à se lancer puis, on observe que la mémoire vive est prise à 100 % par le cache je suppose car le programme en lui même ne prend rien (via top).

C'est un problème de développement visiblement qui dépasse mes compétences car je ne fait par de Fortan.

Merci de ton aide.

PS : Le scepticisme n'est qu'un problème de foi ou de fosse.

Poste le Friday 7 March 2008 11:20:43
Répondre     Citer    
Re: Problème affichage mémoire vive

Citation
gk-1973
Cette machine est une station de calcul. Lorsque l'utilisateur exécute son programme, il met un certain temps à se lancer puis, on observe que la mémoire vive est prise à 100 % par le cache

Mais c'est très bien! J'imagine qu'il s'agit d'une grosse machine onéreuse. Si la RAM n'était pas utilisée à 100%, il y aurait du gaspillage de resources (donc d'argent) et l'actionnaire ou le propriétaire de ton employeur (ou entreprise ou institution) serait mécontent.

Linux cherche à utiliser efficacement les resources (la gestion des resources est le rôle principal d'un système d'exploitation). Dans ton cas, il semble les utiliser (au moins pour la RAM) à 100%! Bravo!

Donc au contraire, ton code de calcul semble correctement écrit, et le noyau Linux fait du mieux qu'il peut et il semble même qu'il fasse très bien.



----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Friday 7 March 2008 11:36:23
Répondre     Citer    
Re: Problème affichage mémoire vive
Envoyé par: gk-1973

en complément, d'information, le developpeur me signale que le problème vient d'une exponentielle faite sur un chiffre négatif très grand...#%b

Poste le Friday 7 March 2008 11:37:11
Répondre     Citer    
Re: Problème affichage mémoire vive
Envoyé par: gk-1973

Citation
Basile STARYNKEVITCH
:

Mais c'est très bien! J'imagine qu'il s'agit d'une
grosse machine onéreuse. Si la RAM n'était pas
utilisée à 100%, il y aurait du gaspillage de
resources (donc d'argent) et l'actionnaire ou le
propriétaire de ton employeur (ou entreprise ou
institution) serait mécontent.


Oui, une super bécanne à 3500 €. L'actionnaire principal de mon employeur (en l'occurance la Fonction Publique). C'est toi et moi.
Personnellement j'en suis très content.
@+ et merci.

Poste le Friday 7 March 2008 11:43:03
Répondre     Citer    
Re: Problème affichage mémoire vive

Citation
gk-1973
Oui, une super bécanne à 3500 €. L'actionnaire principal de mon employeur (en l'occurence la
Fonction Publique). C'est toi et moi.
Personnellement j'en suis très content.

Nous avons le même actionnaire (l'Etat): je travaille au CEA LIST et le CEA est un Etablissement Public Industriel et Commercial appartenant à l'Etat (mais j'ai un contrat de travail en CDI de droit privé et je suis licenciable). Je code ces temps ci (mais aujourdhui je suis en congé) sur GCC avec du financement en provenance du ministère de finances (sur un projet ITEA).

Donc, ta RAM est utilisée au mieux.

Par contre, je n'arrive pas à reproduire un problème lié à l'expentielle d'un nombre négatif.
  PROGRAM essai
     DOUBLE PRECISION r
     DOUBLE PRECISION e
     READ (*,*) r
     e = EXP(r)
     WRITE(*,*) e
   END PROGRAM essai

(C'est mon premier programme fortran90, et j'espère bien le seul; je n'aime ni fortran, ni cobol, ni C++; je prefère Ocaml ou Lisp à C)

Ca marche sans problème pour moi et sans souci (en tapant -1000.0 ou -200.0 ou -1000000.0 en entrée).

Pas sûr que ton problème soit lié à l'exponentielle de nombres flottants... Peut-être s'agit-il d'exponentielle de matrices (où je comprendrais qu'un exposant négatif fort requiert beaucoup de calcul et de mémoire). Et le noyau linux fera alors comme il peut.

En tout état de cause, je ne crois pas que le mécanisme de cache des fichiers dans le noyau soit à mettre en cause (ou même à configurer finement).

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Friday 7 March 2008 12:08:24
Répondre     Citer    
Re: Problème affichage mémoire vive
Envoyé par: gk-1973

Citation
Basile STARYNKEVITCH
Nous avons le même actionnaire (l'Etat): je
travaille au CEA LIST et le CEA est un
Etablissement Public Industriel et Commercial
appartenant à l'Etat (mais j'ai un contrat de
travail en CDI de droit privé et je suis
licenciable). Je code ces temps ci (mais
aujourdhui je suis en congé) sur GCC avec du
financement en provenance du ministère de finances
(sur un projet ITEA).

C'est hors sujet dans ce forum, mais moi, j'aimerai bien que l'Etat me propose un CDI.
Cela fait 8 ans que je suis en CDD (IATOS) !!! #%b Contractuel de la Fonction Publique. 5 contrats différents depuis 2000.


Citation
Basile STARYNKEVITCH

Donc, ta RAM est utilisée au mieux.

Par contre, je n'arrive pas à reproduire un
problème lié à l'expentielle d'un nombre
négatif.
PROGRAM essai
DOUBLE PRECISION r
DOUBLE PRECISION e
READ (*,*) r
e = EXP(r)
WRITE(*,*) e
END PROGRAM essai

(C'est mon premier programme fortran90, et
j'espère bien le seul; je n'aime ni fortran, ni
cobol, ni C++; je prefère Ocaml ou Lisp à C)

Ca marche sans problème pour moi et sans souci (en
tapant -1000.0 ou -200.0 ou -1000000.0 en
entrée).

Pas sûr que ton problème soit lié à
l'exponentielle de nombres flottants... Peut-être
s'agit-il d'exponentielle de matrices (où je
comprendrais qu'un exposant négatif fort requiert
beaucoup de calcul et de mémoire). Et le noyau
linux fera alors comme il peut.

En tout état de cause, je ne crois pas que le
mécanisme de cache des fichiers dans le noyau soit
à mettre en cause (ou même à configurer finement).

----

Basile STARYNKEVITCH où on trouve mon mél

N.B. N'hesitez pas à consulter aussi mes
contributions antérieures.


Je vais approfondir la chose avec le développeur (chercheur en Biostatistiques).
Un grand Merci pour ton aide.


Poste le Friday 7 March 2008 13:01:17
Répondre     Citer    
Re: Problème affichage mémoire vive
Envoyé par: gk-1973

Voici des précisions du développeur :



Tu as raison, le problème n'est pas l'exponentielle.

En fait, voilà mon algo:
X <- variable aléatoire suivant une uniforme entre 0 et 1
N<-0
Tant que (X>=exp(-a)) faire
...
Fin tant que

Ce qui se passe quand a est trop grand : X n'a pratiquement pas de chances d'être supérieur à exp(-a) et le programme tourne encore et encore. En fait, si je le laissais tourner, il devrait s'arrêter un jour...


Poste le Friday 7 March 2008 13:51:07
Répondre     Citer    
Re: Problème affichage mémoire vive
Envoyé par: Dodot

Pour Basile STARYNKEVITCH :

Le gars se plaint que son programme met trop de temps à se lancer, il pense que ça vient du manque de mémoire vive disponible, et tu lui réponds :

Citation
Basile STARYNKEVITCH
Maintenant si c'est vraiement important pour toi, tu pourrais y remedier, soit en configurant ton système finement (peut-être avec des démons comme preload), soit en améliorant le noyau. Dans tous les cas de figure, une connaissance fine de Linux et du noyau est nécessaire.

Prétendre qu'un administrateur lambda est capable d'améliorer le noyau Linux, c'est ridicule. Tu en es peut-être capable, félicitations, mais tu ne peux pas dire à un gars qui a un pb de mémoire "il faut que tu améliore ton noyau Linux" ! C'est aberrant ! On peut optimiser une config Linux sans toucher au code du noyau, faut arrêter de prendre du speed...

Poste le Monday 1 December 2008 10:46:37
Répondre     Citer    
Re: Problème affichage mémoire vive
Envoyé par: AlSim

Inutile de déterrer des sujets vieux de 9 mois pour ne pas apporter d'information utile supplémentaire...

[catwell.info]

Poste le Monday 1 December 2008 18:51:47
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Problème affichage mémoire vive
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons