web-dev-qa-db-fra.com

Comment augmenter la taille du tas pour le serveur jBoss

J'ai un scénario de téléchargement de fichiers dans mon projet. Lorsque j'essaie de télécharger les gros fichiers, cela me donne une erreur OutOfMemory. Cette erreur est liée à la taille du segment de mémoire Java.

Comment augmenter la taille du tas en Java et quel fichier dois-je modifier pour cela? J'utilise le serveur jboss 5.1 pour exécuter mon application.

11
youraj

Vous pouvez le définir en tant qu'arguments JVM de la manière habituelle, par exemple. -Xms1024m -Xmx2048m pour un minimum de 1 Go et un maximum de 2 Go. JBoss utilisera la variable d'environnement Java_OPTS pour inclure des arguments JVM supplémentaires. Vous pouvez le spécifier dans le fichier /bin/run.conf.bat:

set "Java_OPTS=%Java_OPTS% -Xms1024m -Xmx2048m"

Cependant, il s’agit plus d’un solution de contournement que d’une solution réelle. Si plusieurs utilisateurs téléchargent simultanément de gros fichiers, vous rencontrerez tôt ou tard le même problème. Vous auriez besoin de continuer à augmenter la mémoire pour rien. Vous devriez plutôt configurer votre analyseur de téléchargement de fichier pour qu'il stocke le fichier téléchargé sur un disque temporaire plutôt que entièrement en mémoire. Tant qu'on ne sait pas quel analyseur utiliser, aucune réponse appropriée ne peut être donnée. Cependant, plus souvent qu'Apache Commons FileUpload est utilisé sous les couvertures, vous devez alors lire la documentation avec "taille de seuil" comme mot clé pour configurer la limite de mémoire des fichiers téléchargés. Lorsque la taille du fichier dépasse le seuil, il est alors écrit sur le disque.

25
BalusC

Sur wildfly 8 et versions ultérieures, accédez à /bin/standalone.conf et mettez-y votre Java_OPTS, avec tout ce dont vous avez besoin.

4
Camilo

Utilisez les options de ligne de commande -Xms et -Xmx lors de l'exécution de Java:

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size

Pour plus d'aide, tapez Java -X en ligne de commande.

4
AlexR

Modifiez l'entrée suivante dans le fichier run.conf. Mais si vous avez plusieurs machines virtuelles s'exécutant sur le même ordinateur, vous pouvez l'exécuter via un argument de ligne de commande de -Xms2g -Xmx4g (ou quels que soient vos paramètres de mémoire de départ/maximum préférés. 

if [ "x$Java_OPTS" = "x" ]; then
    Java_OPTS="-Xms2g -Xmx4g -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true
3
kmaqsudi

Recherchez dans le dossier bin JBoss le fichier run.bat (run.sh sous Unix).

cherchez la ligne set Java_OPTS (ou simplement Java_OPTS sous Unix) à la fin de cette ligne, ajoutez -Xmx512m. Modifiez le nombre en fonction de la quantité de mémoire que vous souhaitez attribuer à JBoss.

Si vous utilisez un script personnalisé pour démarrer votre instance jboss, vous pouvez également ajouter l'option set Java_OPTS.

3
Sean

J'ai mentionné les modifications de configuration nécessaires pour les environnements augmentation de la taille du segment de mémoire dans Windows ou Linux

Linux:

bin/standalone.conf

Vérifiez la ligne suivante, 

Java_OPTS

et changez-le en fonction de vos besoins en taille de segment} _

-Xms1303m: initial heap size in megabytes
-Xmx1303m: maximum heap size in megabytes

Java_OPTS="-Xms1024M -Xmx2048M -XX:MaxPermSize=2048M -XX:MaxHeapSize=2048M"

Les ​​fenêtres:

bin/standalone.conf.bat

Java_OPTS="-Xms1024M -Xmx2048M -XX:MaxPermSize=2048M -XX:MaxHeapSize=2048M"

Maintenant, redémarrer le serveur et il fonctionnera sans afficher d'erreur de taille de segment de mémoire.

Pour plus d'informations, vous pouvez consulter ce lien ci-dessous.

https://access.redhat.com/documentation/en-us/jboss_enterprise_application_platform/5/html/getting_started_guide/adjust_memory_settings

1
Dulith De Costa

Que changer?

set "Java_OPTS =% Java_OPTS% -Xms1024m -Xmx2048m"

Où changer? (Normalement)

bin/standalone.conf (Linux) standalone.conf.bat (Windows)

Que faire si vous utilisez un script personnalisé qui remplace les paramètres existants? puis?

setJBosssEnvironment.cmd/.sh (le type de nom de fichier sera présent)

De plus amples informations sont déjà fournies par certains membres de notre comité! BalusC .

0
vipul kumawat

Dans mon cas, pour jboss 6.3 je devais changer Java_OPTS dans le fichier jboss-eap-6.3\bin\standalone.conf.bat et définir les valeurs suivantes -Xmx8g -Xms8g -Xmn3080m pour que jvm prenne 8 Go d'espace.

0
Tornike Shavishvili