/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Tomcat op hukommelse
Fra : Jacob Bunk Nielsen


Dato : 11-02-05 12:03

Hej

Jeg har en Tomcat 5, som er vært for en Servlet der bruger en del
hukommelse. Jeg har prøvet at sætte CATALINA_OPTS til "-XmxNg", hvor N
fx er 2 eller 3 (maskinen er en x86 med 4 GB hukommelse og en masse
swap), men det vil den ikke. Den siger:

,----
| Error occurred during initialization of VM
| Could not reserve enough space for object heap
`----

Problemet er at min applikation crasher når den løber tør for
hukommelse, også selv om den ikke har brugt al hukommelsen på
serveren.

Hvad overser jeg? Eller kan Tomcat/Java bare ikke håndtere
applikationer der bruger så meget hukommelse? Det synes jeg lyder
forkert, så jeg er sikker på at jeg har overset noget.

--
Jacob

 
 
Jonas Kongslund (11-02-2005)
Kommentar
Fra : Jonas Kongslund


Dato : 11-02-05 12:34

On Fredag 11 februar 2005 12:02, Jacob Bunk Nielsen wrote:

> Jeg har en Tomcat 5, som er vært for en Servlet der bruger en del
> hukommelse. Jeg har prøvet at sætte CATALINA_OPTS til "-XmxNg", hvor N
> fx er 2 eller 3 (maskinen er en x86 med 4 GB hukommelse og en masse
> swap), men det vil den ikke. Den siger:

Jeg tror ikke du kan bruge g som enhed for gigabyte. Prøv med "-Xmx1024m" i
stedet for.

--
Jonas Kongslund

Jacob Bunk Nielsen (11-02-2005)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 11-02-05 13:36

Jonas Kongslund <dont@mail.me.at.all> writes:
> On Fredag 11 februar 2005 12:02, Jacob Bunk Nielsen wrote:
>
>> Jeg har en Tomcat 5, som er vært for en Servlet der bruger en del
>> hukommelse. Jeg har prøvet at sætte CATALINA_OPTS til "-XmxNg", hvor N
>> fx er 2 eller 3 (maskinen er en x86 med 4 GB hukommelse og en masse
>> swap), men det vil den ikke. Den siger:
>
> Jeg tror ikke du kan bruge g som enhed for gigabyte. Prøv med "-Xmx1024m" i
> stedet for.

Det gør ingen forskel. Jeg lagde dog mærke til at jeg sjovt nok først
får den pågældende fejl når jeg forsøger at lukke min tomcat. Hvorfor
det? Om jeg sætter den til 1 GB eller 3 GB gør ingen forskel for hvor
meget hukommelse min Tomcat kan udnytte. Den lader til at dø omkring 2
GB.

Jeg glemte i øvrigt:

$ java -version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)

Har det noget at sige? Maskinen kører i øvrigt Linux 2.4.27, hvis det
skulle gøre nogen forskel?

--
Jacob

Thorbjoern Ravn Ande~ (11-02-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 11-02-05 13:53

Jacob Bunk Nielsen <spam@bunk.cc> writes:

> meget hukommelse min Tomcat kan udnytte. Den lader til at dø omkring 2
> GB.

Det kan godt tænkes at være en begrænsning i en 32-bit Java.

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn/

Martin Husted Hartvi~ (11-02-2005)
Kommentar
Fra : Martin Husted Hartvi~


Dato : 11-02-05 14:44

On 11 Feb 2005 13:52:48 +0100, Thorbjoern Ravn Andersen <nospam0000@c.dk>
wrote:

> Jacob Bunk Nielsen <spam@bunk.cc> writes:
>
>> meget hukommelse min Tomcat kan udnytte. Den lader til at dø omkring 2
>> GB.
>
> Det kan godt tænkes at være en begrænsning i en 32-bit Java.
>

Thjaa... http://forum.java.sun.com/thread.jspa?forumID=37&threadID=338318


Martin

Thorbjoern Ravn Ande~ (11-02-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 11-02-05 15:18

"Martin Husted Hartvig" <mh@ctek.dk> writes:

> Thjaa... http://forum.java.sun.com/thread.jspa?forumID=37&threadID=338318

Tak for at finde officiel dokumentation.

I den aktuelle situtation må man konstatere at hvis problemet ikke kan
spredes ud over flere JVM'er (som kan load balances), er det tiden til
at overveje en 64-bit arkitektur (som Sun leverer en JVM til).

Eftersom Jacob svjv sidder i et universitetsmiljø er det slet ikke
umuligt at han kan få adgang til en Solarismaskine, eller måske endda
arve en :)
--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn/

Jonas Kongslund (11-02-2005)
Kommentar
Fra : Jonas Kongslund


Dato : 11-02-05 19:27

On Fredag 11 februar 2005 13:36, Jacob Bunk Nielsen wrote:
>> Jeg tror ikke du kan bruge g som enhed for gigabyte. Prøv med "-Xmx1024m"
>> i stedet for.
> Det gør ingen forskel.

Ok. 'g' var bare ikke dokumenteret i den tooldoc som jeg kiggede i.

--
Jonas Kongslund

Jacob Bunk Nielsen (11-02-2005)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 11-02-05 16:34

Thorbjoern Ravn Andersen <nospam0000@c.dk> writes:

> I den aktuelle situtation må man konstatere at hvis problemet ikke kan
> spredes ud over flere JVM'er (som kan load balances), er det tiden til
> at overveje en 64-bit arkitektur (som Sun leverer en JVM til).

Kan man umiddelbart sprede en Tomcat-installation over flere JVM'er?

Jeg kan ikke bare sprede loadet på flere Tomcats, da vi desværre i ny
og næ oplever at en enkelt instans bruger de 2 GB hukommelse alene.

> Eftersom Jacob svjv sidder i et universitetsmiljø er det slet ikke
> umuligt at han kan få adgang til en Solarismaskine, eller måske endda
> arve en :)

Det er kun til hverdag at jeg sidder som specialestuderende i et
universitetsmiljø, og der har jeg i øvrigt adgang til masser af store
Sun-maskiner. Her skriver jeg i min egenskab af computernørd hos det
firma der betaler min husleje når blot jeg besøger dem i ny og næ

Om nødvendigt vil vi såmænd også gerne indkøbe servere der kan det vi
vil, men er der så nogen der ved om man med en 64 bit java på fx
Solaris eller en 64 bit Linux kan bruge mere end 2 GB hukommelse?
Linket Martin gav indikerede at man kunne, men praktiske erfaringer er
jo altid godt.

--
Jacob

Thorbjoern Ravn Ande~ (11-02-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 11-02-05 20:30

Jacob Bunk Nielsen <spam@bunk.cc> writes:

> Kan man umiddelbart sprede en Tomcat-installation over flere JVM'er?

Nej, men du kan sprede en webapplikation over flere JVM'er.

> Jeg kan ikke bare sprede loadet på flere Tomcats, da vi desværre i ny
> og næ oplever at en enkelt instans bruger de 2 GB hukommelse alene.

Er det indiskret at spørge om det er noget der kan gøres noget ved?
Der er fx ikke noget til hinder for at fx jeres hovedapplikation kan
spørge en anden maskine om et delresultat. Det har jeg selv gjort med
success med Apache FOP rendering, der også var meget glubsk mht
ressourceforbrug.

> Om nødvendigt vil vi såmænd også gerne indkøbe servere der kan det
> vi vil, men er der så nogen der ved om man med en 64 bit java på fx
> Solaris eller en 64 bit Linux kan bruge mere end 2 GB hukommelse?
> Linket Martin gav indikerede at man kunne, men praktiske erfaringer
> er jo altid godt.

Jeg har ikke selv erfaring med det, men du kunne jo eventuelt selv
fyre en tomcat op på en af dine studiemaskiner og smide et stort
problem efter det.
--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn/

Jacob Bunk Nielsen (16-02-2005)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 16-02-05 18:21

Thorbjoern Ravn Andersen <nospam0000@c.dk> writes:

> Ok. Meld tilbage når du har resultater.

Vi har nu lånt en V20z af Sun. Det er en AMD Opteron, men desværre kun
med 2 GB hukommelse. Jeg har naturligvis lavet en masse swap da jeg
installerede Solaris 10 på den, så den burde kunne klare det
alligevel.

Desværre lader det så til at Sun ikke udbyder en 64 bit Java til
AMD64. Kan det virkelig passe? Så kommer man jo ikke langt for 5000
til en Opteron.

Jeg har skrevet Java-program der allokerer en masse hukommelse, og gør
det 1 MB ad gangen. Hvis jeg prøver med -XmxNm for N større end 2750
bliver den sur og siger:

$ java -Xmx2800m test
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

--
Jacob

Thorbjoern Ravn Ande~ (16-02-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 16-02-05 22:42

Jacob Bunk Nielsen <spam@bunk.cc> writes:

> Vi har nu lånt en V20z af Sun. Det er en AMD Opteron, men desværre kun
> med 2 GB hukommelse. Jeg har naturligvis lavet en masse swap da jeg
> installerede Solaris 10 på den, så den burde kunne klare det
> alligevel.

Og det er en 64 bit kerne? Hvorfor lånte I ikke en Sparcmaskine nu I
var i gang?

> Jeg har skrevet Java-program der allokerer en masse hukommelse, og gør
> det 1 MB ad gangen. Hvis jeg prøver med -XmxNm for N større end 2750
> bliver den sur og siger:
>
> $ java -Xmx2800m test
> Error occurred during initialization of VM
> Could not reserve enough space for object heap
> Could not create the Java virtual machine.

Øv. Det skal være en 64 bit version førend det rykker.

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn/

Jacob Bunk Nielsen (12-02-2005)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 12-02-05 14:10

Thorbjoern Ravn Andersen <nospam0000@c.dk> writes:
> Jacob Bunk Nielsen <spam@bunk.cc> writes:
>
>> Kan man umiddelbart sprede en Tomcat-installation over flere JVM'er?
>
> Nej, men du kan sprede en webapplikation over flere JVM'er.

Hmmm - det må jeg vist lige læse lidt op på. Desværre er det til tider
et enkelt problem/instans der tager så mange ressourcer, så jeg er
ikke sikker på at det hjælper.

> Er det indiskret at spørge om det er noget der kan gøres noget ved?

Nej, slet ikke, men det tror jeg desværre ikke der kan. De data vi
arbejder med fylder bare meget.

> Der er fx ikke noget til hinder for at fx jeres hovedapplikation kan
> spørge en anden maskine om et delresultat.

Det er muligt man kan lavet noget i den retning, men det giver
desværre bare øget kompleksitet, og virker lidt som symptombehandling
frem for en rigtig løsning. Så tror jeg hellere vi vil købe en 64 bit
dims, hvis det kan løse vores problem (det er dog ikke min
beslutning).

>> Om nødvendigt vil vi såmænd også gerne indkøbe servere der kan det
>> vi vil, men er der så nogen der ved om man med en 64 bit java på fx
>> Solaris eller en 64 bit Linux kan bruge mere end 2 GB hukommelse?
>> Linket Martin gav indikerede at man kunne, men praktiske erfaringer
>> er jo altid godt.
>
> Jeg har ikke selv erfaring med det, men du kunne jo eventuelt selv
> fyre en tomcat op på en af dine studiemaskiner og smide et stort
> problem efter det.

Det var måske en idé. Man skulle vel nok kunne lave et lille program
der allokerer en masse hukommelse. Det bliver dog tidligst på mandag.

--
Jacob - www.bunk.cc
If you didn't get caught, did you really do it?

Thorbjoern Ravn Ande~ (12-02-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 12-02-05 14:17

Jacob Bunk Nielsen <spam@bunk.cc> writes:

> Nej, slet ikke, men det tror jeg desværre ikke der kan. De data vi
> arbejder med fylder bare meget.

Nu ved jeg jo ikke hvad problem I løser, men en typisk løsning for
store datamængder er jo at skovle det ned i en database som gør det
muligt at foretage optimerede forespørgsler i stedet for at hive hele
møllen ind i hukommelsen og så udtrække det nødvendige.

Er noget tilsvarende muligt her?

> frem for en rigtig løsning. Så tror jeg hellere vi vil købe en 64 bit
> dims, hvis det kan løse vores problem (det er dog ikke min
> beslutning).

Man kan komme langt for 5000 til en AMD64 maskine.

> Det var måske en idé. Man skulle vel nok kunne lave et lille program
> der allokerer en masse hukommelse. Det bliver dog tidligst på mandag.

Ingen ssh?

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn/

Jacob Bunk Nielsen (12-02-2005)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 12-02-05 16:04

Thorbjoern Ravn Andersen <nospam0000@c.dk> writes:
> Jacob Bunk Nielsen <spam@bunk.cc> writes:
>
>> Nej, slet ikke, men det tror jeg desværre ikke der kan. De data vi
>> arbejder med fylder bare meget.
>
> Nu ved jeg jo ikke hvad problem I løser, men en typisk løsning for
> store datamængder er jo at skovle det ned i en database som gør det
> muligt at foretage optimerede forespørgsler i stedet for at hive hele
> møllen ind i hukommelsen og så udtrække det nødvendige.
>
> Er noget tilsvarende muligt her?

Nej, desværre ikke umiddelbart. Det drejer blandt andet om at nogle
forespørgsler giver meget output.

>> [...] Så tror jeg hellere vi vil købe en 64 bit dims, hvis det kan
>> løse vores problem (det er dog ikke min beslutning).
>
> Man kan komme langt for 5000 til en AMD64 maskine.

Men man får ikke 4 GB hukommelse, 4 CPU'er, hurtige harddiske og noget
backup til den pris

Den server vi bruger lige nu har kostet adskillige gange 5000 kroner


>> Det var måske en idé. Man skulle vel nok kunne lave et lille program
>> der allokerer en masse hukommelse. Det bliver dog tidligst på mandag.
>
> Ingen ssh?

Jo, men weekend, tømmermænd og en masse andre ting der også skal laves


--
Jacob - www.bunk.cc
Got a dictionary? I want to know the meaning of life.

Thorbjoern Ravn Ande~ (12-02-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 12-02-05 17:38

Jacob Bunk Nielsen <spam@bunk.cc> writes:

> Nej, desværre ikke umiddelbart. Det drejer blandt andet om at nogle
> forespørgsler giver meget output.

Jeg kan stadig ikke forstå det. Får man meget output behøver man jo
ikke have det hele i hukommelsen. Nå, der er sikkert en god grund til
at I ikke kan reducere problemet.

> > Man kan komme langt for 5000 til en AMD64 maskine.
>
> Men man får ikke 4 GB hukommelse, 4 CPU'er, hurtige harddiske og noget
> backup til den pris

Ikke? Der kan man se. I kan også høre hos Epoka.dk angående brugt
Sunudstyr - så vidt jeg ved er der evig licens til Solaris, og der kan
I hente hele møllen hos sun.

> > Ingen ssh?
>
> Jo, men weekend, tømmermænd og en masse andre ting der også skal laves

Ok. Meld tilbage når du har resultater.

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn/

Martin Husted Hartvi~ (13-02-2005)
Kommentar
Fra : Martin Husted Hartvi~


Dato : 13-02-05 16:50

On 12 Feb 2005 17:37:41 +0100, Thorbjoern Ravn Andersen <nospam0000@c.dk>
wrote:

> Jacob Bunk Nielsen <spam@bunk.cc> writes:
>
>> Nej, desværre ikke umiddelbart. Det drejer blandt andet om at nogle
>> forespørgsler giver meget output.
>
> Jeg kan stadig ikke forstå det. Får man meget output behøver man jo
> ikke have det hele i hukommelsen. Nå, der er sikkert en god grund til
> at I ikke kan reducere problemet.

En god memory sluger er toString, jeg har oplevet at memory'en blev ædt
under logning, så hvis du har sådan noget, så prøv at fjern det.



>
>> > Man kan komme langt for 5000 til en AMD64 maskine.
>>
>> Men man får ikke 4 GB hukommelse, 4 CPU'er, hurtige harddiske og noget
>> backup til den pris
>
> Ikke? Der kan man se. I kan også høre hos Epoka.dk angående brugt
> Sunudstyr - så vidt jeg ved er der evig licens til Solaris, og der kan
> I hente hele møllen hos sun.
>
>> > Ingen ssh?
>>
>> Jo, men weekend, tømmermænd og en masse andre ting der også skal laves

Lyder meget bekendt :)

>
> Ok. Meld tilbage når du har resultater.
>


Martin

Jacob Bunk Nielsen (17-02-2005)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 17-02-05 09:17

Thorbjoern Ravn Andersen <nospam0000@c.dk> writes:
> Jacob Bunk Nielsen <spam@bunk.cc> writes:
>
>> Vi har nu lånt en V20z af Sun. Det er en AMD Opteron, men desværre kun
>> med 2 GB hukommelse. Jeg har naturligvis lavet en masse swap da jeg
>> installerede Solaris 10 på den, så den burde kunne klare det
>> alligevel.
>
> Og det er en 64 bit kerne? Hvorfor lånte I ikke en Sparcmaskine nu I
> var i gang?

Yep, det er en 64 bit kerne.

Vi lånte ikke en SPARC fordi vi havde kig på en V40z, og så var den
der V20z lige den der lignede mest af dem de havde på lager i deres
demopool. Desuden er SPARC'erne jo også voldsomt meget dyrere, og ikke
nær så hurtige.

--
Jacob - www.bunk.cc
Don't I know you?

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste