2009-10-21 11 views
0

Quand je commence un vide JBoss 5.1, il utilise cette quantité de mémoire:Utilisation de la mémoire de JBoss?

  1. dans la configuration par défaut
    Sous Windows ~ 530Mo
    Sous AIX ~ 220MB

  2. en configuration web
    Sous Windows ~ 320Mb
    Sur AIX ~ 100-130Mb

Pourquoi y a-t-il une si grande différence entre l'utilisation de la mémoire sous AIX et sous Windows?
Les versions de JBoss sont les mêmes.
Java 1.5.

+3

Et vous avez fait les "Américains ne savent pas comment se rapporter aux étrangers" un ... – Benjol

+0

@Alex Sexton Pas Russe - Ukrainien;) Désolé pour mon anglais. –

+0

Comment et quand mesurez-vous la quantité de mémoire? –

Répondre

2

La possibilité la plus évidente est que les différents scripts de démarrage allouent différentes quantités de mémoire. Vérifiez l'option -Xms dans les scripts.

En outre, différentes JVM ont des configurations de mémoire par défaut différentes, celle d'AIX peut être beaucoup moins élevée que celle de Windows.

+0

Les paramètres de mémoire sont les mêmes: run.conf: JAVA_OPTS = "- Xms128m -Xmx512m -XX: MaxPermSize = 256m -Dorg .jboss.resolver.warning = true -Dsun.rmi.dgc.client.gcInterval = 3600000 -Dsun.rmi.dgc.server.gcInterval = 3600000 "run.conf.bat: définissez" JAVA_OPTS = -Xms128M -Xmx512M -XX: MaxPermSize = 256M " –

3

Peut-être que c'est simplement parce que run.bat et run.sh ont été écrits par des personnes différentes. Ces paramètres ne sont que des paramètres initiaux de toute façon, personne ne peut prédire ce que les utilisateurs vont faire et quels paramètres ils auront besoin. Juste oubliez la différence, accordez-la en fonction de vos besoins.

EDIT: Selon les commentaires, les paramètres JVM sont les mêmes sous Windows et AIX. Toutefois, les paramètres ms et mx n'ont pas la même valeur, de sorte que la taille du segment augmente avec le temps si nécessaire et qu'il est pratiquement impossible de prévoir comment et quand (cela dépend de l'utilisation). J'utiliserais les mêmes valeurs pour ms et mx pour éviter cela. Cela dit, l'outil de surveillance du système d'exploitation (Windows perfmon ou gestionnaire de tâches ou ps/top sous Unix) indique la taille de la mémoire du processus JVM (c'est-à-dire java.exe sous Windows et java sous Unix).

La mémoire de processus [...] comprend le segment de l'objet et de l'espace de mémoire supplémentaire en raison de l'exécutable de processus, l'espace de pile d'exécution des threads, l'objet thread espace de tas, tout espace occupé par la JNI et les objets créés à partir de JNI, et aussi tous les autres espaces JVM comme l'espace PERM qui est où les classes sont chargées dans la plupart des JVM. [...] Utilisez le moniteur du système d'exploitation pour surveiller la taille du processus et assurez-vous qu'il se place confortablement dans la RAM.

Mais, en fait, en raison de la façon dont chaque système d'exploitation gère la mémoire, je ne suis pas sûr ps et le gestionnaire de tâches rapportera la même chose.

Quelques références:

EDIT2: Vérification que votre processus JVM se glisse facilement dans la RAM est une chose. Mais vérifier que votre JVM est bien réglée (par exemple GC non trop long majeur) est vraiment une autre chose. Vous ne mesurerez pas la deuxième chose avec ps ou le gestionnaire de tâches, vous devez profiler votre tas pour cela.

+0

@Pascal THIVENT paramètres de la mémoire sont les mêmes: run.conf: JAVA_OPTS =" - Xms128m -Xmx512m -XX: MaxPermSize = 256m -Dorg.jboss.resolver.warning = true -Dsun.rmi. dgc.client.gcInterval = 3600000 -Dsun.rmi.dgc.server.gcInterval = 3600000 " run.conf.bat: définissez" JAVA_OPTS = -Xms128M -Xmx512M -XX: MaxPermSize = 256M " –

+0

Eh bien,' ms' et 'mx' n'a pas la même valeur donc il est assez imprévisible de dire comment le tas va grandir. Puis-je vous poser une question: quelle est votre préoccupation? –

+0

Lors du test de PC JBoss + notre application utilise trop de mémoire. Si je déploie notre application - il utilise environ 1 Go. 500Mb = JBoss + 500Mb = OurApplication Et j'essaie de comprendre s'il est possible de diminuer la quantité de mémoire utilisée par JBoss. Lors du test de PC, nous avons JAVA_OPTS == "- Xms256m -Xmx1024m" –

Questions connexes