Hvad er den maksimale Java Heap størrelse, jeg kan bruge sikkert på Windows 64-bit platform?

Indlæg af Hanne Mølgaard Plasc

Problem



Vi bruger Windows 2003-serveren 64-bit til at køre en WebSphere/J2EE-applikation (JVM er også 64-bit). Maskinen har 16 GB fysisk hukommelse. Det er desværre, at vores applikation er hukommelsesintensiv, og det vil stadig tage lidt tid for os at tilføje ekstra hukommelse.


Jeg forstår, at operativsystemet selv kræver en vis mængde hukommelse. Når det siges, hvad ville være et sikkert (uden personsøgning?) Maksimal bunke størrelse vi kan bruge, forudsat at dette er den eneste applikation, der kører på systemet?

Bedste reference


Jeg tror, ​​at svaret vil afhænge af mange faktorer, hvoraf mange er svære at forudsige.


IMO, den mest praktiske måde at bestemme den maksimale maksimale størrelse på er ved forsøg og fejl. Jeg starter med en maksimal størrelse på ca. 15 GB, se systemets hukommelse/personsøgningsstatistik og juster op eller ned.

Andre referencer 1


Den bedste ide er at eksperimentere ... Tjek det første svar her ... det hjælper dig ...


Du kan skrive en batchfil til at eksperimentere for forskellige bunkeformater og se, hvor den går ned

Andre referencer 2


Hvis du har to hukommelsesbanker f.eks. da du har to CPU'er, kan du opleve, at din applikationsydelse er betydeligt langsommere, hvis du bruger mere end halvdelen af ​​din hukommelse. Du får den bedste ydelse fra din hukommelse, hvis du bruger ca. 3/4 af din hukommelsesbankstørrelse.


Du kan stadig få bedre ydeevne for at bruge mere af din hukommelse, men det vil ikke skelne som du kunne forvente, og dine GC-tider vil hoppe betydeligt.