IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Logging Java Discussion :

Out of memory, logging, socket


Sujet :

Logging Java

  1. #1
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut Out of memory, logging, socket
    Bonjour,

    J'ai un problème de Out of Memory en faisant tourner un code mapreduce sur Hadoop. Plus précisement:
    - Je vois plusieurs fois dans mes log org.apache.http.conn.ConnectTimeoutException. Cette exception est catchée et mon code finit par réussir à tout lire.
    - Dès qu’il arrive à tout lire, je vois des messages de logging apparaître datant de plus de 10 minutes. Ces messages sont générés par java.util.logging.
    - Jvisualvm montre que la mémoire est surtout occupée par des char[].

    Il est probable que mes requêtes finissant en ConnectTimeoutException soient trop grosses et conduisent au Out-of-memory.

    Cependant, je me demande s'il est possible que le Out-of-memory soir causé par le logging. Peut-être que le thread responsable du logging est pausé pendant le TimeoutException et ne vide pas son buffer de messages : je vois vraiment apparaitre d'un coup plein de vieux messages dans le stdout d'Eclipse.
    Cela vous semble-t'il possible ? Comment se comporte java.util.logging vis-à-vis du threading ? Y'a-t'il un thread différent du principal responsable de logger ?

    Merci d'avance.

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Pas de thread séparé à ce que je sache dans java.util.logging...

    Par contre, sans ton code ni aucune trace des logs qui apparaissent, aucune idée de ce qu'il se passe... Les mapreduce et autres trucs du genre, eux, peuvent être fortement multi-threadé, notamment si ils invoquent parallelStream (explicitement ou implicitement), donc, pour tout ce qui touche au threading, je commencerais de ce côté.

    De plus, un profileur genre JProfiler (carrément meilleur que JVisualVM) va te permettre de lever tous les doutes en ce qui concerne le nombre de threads actifs et ce qu'ils font. Je dirais que sans profileur, c'est comme chercher une aiguille dans une meule toussa (sauf qu'on pense que c'est une aiguille mais qu'on n'en est même pas sûr)...
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

Discussions similaires

  1. [XStream][String]out of memory
    Par Invité dans le forum Persistance des données
    Réponses: 8
    Dernier message: 10/01/2006, 14h52
  2. [C++] [gcc] out of memory
    Par fxp17 dans le forum GCC
    Réponses: 5
    Dernier message: 06/01/2006, 10h29
  3. [pb mémoire] out of memory d'eclipse
    Par Casp dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 12/05/2005, 16h39
  4. Out of memory
    Par shurato dans le forum ANT
    Réponses: 1
    Dernier message: 10/11/2004, 16h19
  5. [JBuilder 8] Out of memory problem ...
    Par keros dans le forum JBuilder
    Réponses: 2
    Dernier message: 08/09/2003, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo