Abbiamo un prodotto che viene eseguito su un JRE 1.6 a 32 bit. Usiamo Berkeley DB che consuma circa 2,5 GB di RAM dello spazio di indirizzi di 4 GB. Questo ci lascia circa 750 MB di memoria per lo spazio di indirizzamento JVM.java: Come utilizzare l'heap oltre la memoria da 4 GB in JVM a 32 bit
Attualmente stiamo riscontrando problemi OutOfMemory con la configurazione corrente. Sarebbe bello aumentare la dimensione dell'heap JVM a 1,5 GB, mantenendo comunque lo spazio di 2,5 GB di Berkeley DB. C'è un modo per accedere a più di 4 GB di RAM/heap in una JVM a 32 bit? Ho considerato le seguenti soluzioni
1) utilizzare una JVM che funziona meglio con GC - questo mi darà risultati marginali - Potrei ottenere circa 50-100 MB di memoria di lavoro
2) qualcosa come memcached o "fuori processo ehcache "- questo può farmi ottenere quanto l'hardware consente con il sovraccarico di IPC/serializzazione.
Esistono altre soluzioni per aumentare la memoria indirizzabile di un'applicazione?
La soluzione dovrebbe funzionare su Solaris 10 in esecuzione sparc.
* AGGIORNAMENTO: A causa di utilizzare librerie condivise native, in questo momento, non siamo in grado di passare a una JVM a 64 bit, anche se il sistema operativo è a 64 bit *
ringraziamento,
Il sistema operativo è solaris a 64 bit con molta memoria RAM. È solo il processo Java che ha bisogno di più RAM/heap. – anjanb
anjanb, puoi dire la versione esatta di BerkeleyDB? Quanta memoria è stata riservata a BerkeleyDB? – osgx