Automatisch herstel van toewijzing van virtueel geheugen

Mijn systeem gebruikt een derde deel kernel ingebouwd in native bibliotheken (C ++) met een J2EE bovenste laag die draait op Tomcat 6. De verkoper bepaalt 32bit JDK en over het algemeen heeft de applicatie erg geheugen hongerig. We draaien momenteel op Windows x64 met 32-bits JVM. In wezen hangt de JVM wanneer de Virtuele Grootte de 2GB 32-bits adreslimiet nadert.

Vraag: Van tijd tot tijd zullen de externe frameworks grote verzoeken om geheugen doen en dit verhoogt de virtuele grootte die op de server is toegewezen. De toegewezen virtuele grootte zal nooit herstellen, ook al lijkt het erop dat het geheugen dat de kernel nodig heeft zijn geheugenbehoeften verkleint. Wordt de virtuele grootte in een typische Tomcat-implementatie ooit automatisch hersteld of werkt deze altijd als een hoog waterniveau dat blijft stijgen? Is er een manier om de JVM te vertellen dat ze proberen de virtuele grootte dynamisch te verlagen?

Ik vermoed dat de native kernel van de derde partij hier de schuld van is, maar ik moet al onze opties onderzoeken.

Ter info: AWE in Windows is geen duidelijke optie, aangezien de leverancier officieel geen JVM's ondersteunt die AWE-ondersteuning hebben. Migratie naar Linux is ook geen gemakkelijke weg, maar wordt overwogen.

2

Geen antwoorden

0