Forum Linux.redhat Analyse fuite mémoire du Système?

Posté par  .
Étiquettes : aucune
0
13
mar.
2006
Bonjour à tous,

J'utilise un Feroda 4 pour tester une application java déployée sur un serveur d'application JOnAS 4.3.3

Quand je fais un "free -m", on voie qu'il y a une fuite mémoire. Par contre, quand je fais un "top" et que je classe par ordre décroissant par rapport à la colonne "RES", la mémoire consommé par tous les processus de varie quasiment pas. Les seules variations constatées concernent mysql (+ 10 Mo) et mon application (+ 30 Mo)

J'ai également vérifié les fuite mémoire avec JProbe. La mémoire consommé par la JVM est sable.

J'utilise la JDK 1.4.2_10 de Sun.

Est ce une mauvaise configuration du système qui provoque cette fuite? Y a t-il un autre test que je pourrais faire pour identifier la fuite?

Autre question: A chaque pic, la consommation mémoire par la JVM augmente de 30 Mo, mais elle retrouve son état initial après le pic de charge. Linux semble indique la valeur max de la mémoire réellement consommé par l'application, car la valeur RES du TOP ne décroit pas. Est ce normal?

Merci à tous.
  • # Re: Analyse fuite mémoire du Système?

    Posté par  . Évalué à 5.

    Un grand classique. Je parie que ce que tu vois augmenter, c'est la mémoire cache. Quelle ligne regardes-tu exactement ? La ligne intéressante dans free -m est celle qui commence par +/- buffers/cache.

    En fait, très schématiquement, les données lues le plus souvent sur le disque par le kernel finissent par se trouver en RAM dans le "cache". Ca permet d'éviter de faire des lectures disque pour un oui ou pour un non (ce qui est beaucoup plus long que d'aller lire en mémoire RAM).

    C'est pour ça qu'un système Linux qui fonctionne depuis un certain temps paraît plus rapide qu'un système Linux qui vient juste de redémarrer.

    La ligne +/- buffers/cache retranche à la mémoire RAM utilisée la place utilisée par le cache et les buffers, ce qui donne une bonne idée de la mémoire utilisée par tes processus.

    @+
    • [^] # Re: Analyse fuite mémoire du Système?

      Posté par  . Évalué à 1.

      Merci.

      Je regardais la colonne used de la ligne Mem:

      Je crois que je commence à comprendre enfin comment est géré la mémoire sur Linux.

      Dans la ligne Mem:, on a
      total = used + free
      et
      used = mémoire utilisé + cache + buffer

      Quelle est la relation entre les informations cached et buffers de la ligne Mem: et ceux de la la ligne +/- buffers/cache?

      D'ailleur, si tu pouvais m'expliquer comment interpéter cette ligne, ca serait sympa...

      Merci beacoup!
      • [^] # Re: Analyse fuite mémoire du Système?

        Posté par  . Évalué à 4.

        Bon, cette fois, c'est bon j'ai compris.

        La ligne +/- buffers/cache indique:
        - la mémoire réellement utilisé (1)
        - la mémoire RAM disponible (2)

        La ligne Mem: indique
        - la mémoire RAM totale
        - la mémoire utilisé = (1) + buffer + cached
        - la mémoire RAM réellement disponible = (2) - buffer - cached

        Le cache est également de la mémoire disponible et peut être libéré à tout moment.

        Si j'ai bien compris, c'est coool! Sinon, corrigez moi... Merci!

        @+

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.