Avatar billede bmk1971 Juniormester
30. august 2017 - 15:43 Der er 3 kommentarer

Min Jar fil går ned.

Hejsa.

Jeg har et spørgsmål angående Java og nedbrud af denne. Javaprogrammet kører med 5000 tråde som hver tråd kommunikerer over internettet. Nogen gange går den ned. Jeg får en log på nedbruddet og noget tyder på RAM problemer. Her er det fra loggen. Skal vi sætte ekstra RAM i eller hvad. Vi kører nu med en 64 bit java. Hvad hjælper det at formindske Java Heap side? Jeg troede at man skulle øge den?? Er der nogen ideer til at løse problemet. Skal jeg få dem til at sætte ekstra Ram er enheden.

# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 353296 bytes for Chunk::new
# Possible reasons:
#  The system is out of physical RAM or swap space
#  In 32 bit mode, the process size limit was hit

# Possible solutions:
#  Reduce memory load on the system
#  Increase physical memory or swap space
#  Check if swap backing store is full
#  Use 64 bit Java on a 64 bit OS
#  Decrease Java heap size (-Xmx/-Xms)
#  Decrease number of Java threads
#  Decrease Java thread stack sizes (-Xss)
#  Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.

Jeg ser meget frem til en løsning.

Venlig hilsen

Bjarne.
Avatar billede arne_v Ekspert
30. august 2017 - 16:35 #1
Er du sikker paa at i bruger 64 bit JVM og ikke 32 bit JVM?

Fejl teksten tyder altsaa paa en 32 bit JVM!
Avatar billede arne_v Ekspert
30. august 2017 - 16:37 #2
Reducere Xmx kan muligvis hjaelpe.

Java memory allokering sker i to niveauer:

jeres applikation ---- JVM

og:

JVM ---- styre systemet

Xmx regulerer det foerste niveau.

Fejlen kommer fra det andet niveau.

Og logikken er at hvis JBM ikke behover give jeres applikation saa meget memory, saa behoever JVM heller ikke bede styresystemet om saa meget memory.
Avatar billede S. Enevoldsen Juniormester
31. august 2017 - 00:57 #3
Hvor meget RAM bruges der lige nu når programmet kører?

5000 tråde er altså ikke småting. F.eks, kunne hver tråd få tildelt 512KB til stakken (stack), hvilket ville gøre at stakplads alene vil tage 2,5GB. Så er der også andet der kræver hukommelse.

Prøv og juster din -Xss indstilling.

http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#threads_oom

For den slags programmer er en typisk arkitektur at bruge f.eks. asynkron I/O i stedet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester