OVH Cloud OVH Cloud

Occupation memoire

2 réponses
Avatar
JKB
Bonjour à tous,

J'ai une petite question qui me turlupine... Soit un serveur
tournant sous debian (amd64) avec un noyau 2.4.14.2 (officiel).
Remarquez, j'obtiens les mêmes résultats avec les autres noyaux.

top - 22:25:38 up 21 days, 7:17, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 89 total, 1 running, 88 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0% us, 0.3% sy, 0.0% ni, 99.7% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu1 : 0.0% us, 0.0% sy, 0.0% ni, 99.3% id, 0.7% wa, 0.0% hi, 0.0% si
Mem: 4029528k total, 3475868k used, 553660k free, 176760k buffers
Swap: 13084856k total, 0k used, 13084856k free, 515004k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10900 jcollab 17 0 5032m 2.1g 15m S 0.0 55.0 61:15.23 java
3957 jcollab 16 0 1852m 237m 14m S 0.0 6.0 0:34.16 java
3612 mysql 16 0 164m 54m 4920 S 0.0 1.4 544:15.97 mysqld
18603 www-data 16 0 76760 16m 4124 S 0.0 0.4 0:01.78 apache2
18742 www-data 16 0 76644 16m 4076 S 0.0 0.4 0:01.45 apache2
18741 www-data 16 0 76464 16m 4084 S 0.0 0.4 0:01.68 apache2
18602 www-data 16 0 76452 16m 4032 S 0.0 0.4 0:01.37 apache2
18601 www-data 16 0 76368 15m 4080 S 0.0 0.4 0:01.67 apache2
24554 www-data 16 0 76364 15m 4048 S 0.0 0.4 0:01.22 apache2
...

Le processus jcollab apparaissant en premier consomme plus de 5Go
(c'est un serveur d'application écrit en java). J'aimerais savoir
pourquoi la mémoire totale occupée par le système est inférieure à
4Go. Cela ne me semble pas cohérent, mais j'ai peut-être raté un
truc. Une idée ? La question est essentielle pour moi parce que
j'ai un problème d'utilisation mémoire dans ce logiciel et je ne
sais pas par quel bout attaquer...

Merci d'avance,

JKB

--
Pour contacter l'équipe de modération : moderateurs-fcolm@efrei.fr
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.

2 réponses

Avatar
Vincent Bernat
OoO En cette matinée pluvieuse du vendredi 27 janvier 2006, vers
10:54, JKB disait:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10900 jcollab 17 0 5032m 2.1g 15m S 0.0 55.0 61:15.23 java
3957 jcollab 16 0 1852m 237m 14m S 0.0 6.0 0:34.16 java
3612 mysql 16 0 164m 54m 4920 S 0.0 1.4 544:15.97 mysqld
18603 www-data 16 0 76760 16m 4124 S 0.0 0.4 0:01.78 apache2
18742 www-data 16 0 76644 16m 4076 S 0.0 0.4 0:01.45 apache2
18741 www-data 16 0 76464 16m 4084 S 0.0 0.4 0:01.68 apache2
18602 www-data 16 0 76452 16m 4032 S 0.0 0.4 0:01.37 apache2
18601 www-data 16 0 76368 15m 4080 S 0.0 0.4 0:01.67 apache2
24554 www-data 16 0 76364 15m 4048 S 0.0 0.4 0:01.22 apache2
...



Le processus jcollab apparaissant en premier consomme plus de 5Go
(c'est un serveur d'application écrit en java). J'aimerais savoir
pourquoi la mémoire totale occupée par le système est inférieure à
4Go. Cela ne me semble pas cohérent, mais j'ai peut-être raté un
truc. Une idée ? La question est essentielle pour moi parce que
j'ai un problème d'utilisation mémoire dans ce logiciel et je ne
sais pas par quel bout attaquer...



Les 5 Go sont dans la colonne VIRT. Cela signifie que ce n'est pas
nécessairement de la mémoire physique qui est utilisée. Notamment,
cela peut contenir des fichiers ouverts avec mmap() : ils sont
rattachés à l'espace mémoire de l'application, mais ils n'occupent pas
de mémoire physique.

man top(1) t'en dira plus.
--
I WILL NOT XEROX MY BUTT
I WILL NOT XEROX MY BUTT
I WILL NOT XEROX MY BUTT
-+- Bart Simpson on chalkboard in episode 7F01

--
Pour contacter l'équipe de modération :
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Avatar
Damien Wyart
* JKB in fr.comp.os.linux.moderated:
Mem: 4029528k total, 3475868k used, 553660k free, 176760k buffers
Swap: 13084856k total, 0k used, 13084856k free, 515004k cached



PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10900 jcollab 17 0 5032m 2.1g 15m S 0.0 55.0 61:15.23 java
3957 jcollab 16 0 1852m 237m 14m S 0.0 6.0 0:34.16 java



Le processus jcollab apparaissant en premier consomme plus de 5Go
(c'est un serveur d'application écrit en java). J'aimerais savoir
pourquoi la mémoire totale occupée par le système est inférieure à
4Go.



man top devrait t'éclairer un peu, et pour plus de détails, je cite la
partie pertinente de <http://forums.gentoo.org/viewtopic.php?p10748>
(un article assez classique rédigé au départ en Anglais mais j'ai
préféré la VF pour te faire plaisir ;-)

,----
| VIRT représente la taille virtuelle d'un processus, c'est-à-dire la
| somme de la mémoire qu'il utilise réellement, la mémoire qu'il
| a référencée pour lui (par exemple, la RAM de la carte video pour le
| serveur X), les fichiers sur disque qu'il référence pour son usage
| (surtout des bibliothèques partagées) ainsi que la mémoire partagée avec
| d'autres processus. VIRT représente la quantité de mémoire à laquelle le
| programme est capable d'accéder à l'instant présent.
|
| RES représente la taille résidente, qui est une représentation précise
| de la quantité réelle de mémoire physique consommée par un processus.
| (Cela correspond aussi directement à la colonne %MEM). D'un point de vue
| virtuel, ce chiffre sera toujours inférieur à la taille VIRT étant donné
| que la plupart des programmes dépendent de la bibliothèque C.
|
| SHR indique quelle quantité de la taille VIRT est réellement partagée
| (mémoire ou bibliothèques). Dans le cas des bibliothèques, cela ne
| signifie pas nécessairement que la totalité de la bibliothèque est
| résidente. Par exemple, si un programmpe n'utilise qu'un petit nombre de
| fonctions d'une bibliothèque, la totalité de la bibliothèque sera
| référencée et prise en compte dans VIRT et SHR mais seules les portions
| de la bibliothèque contenant les fonctions utilisées seront réellement
| chargées et comptées dans RES.
`----

Pour vraiment approfondir, il te faudra te tourner vers des livres
orientés noyau Linux, malheureusement les plus à jour n'existent qu'en
Anglais pour le moment.

--
DW

--
Pour contacter l'équipe de modération :
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.