2016-01-29 3 views
0

Utilisation de Java JDK 1.8.0_60, OrientDB 2.1.3 (intégré/plocal)OrientDB: application embarquée - de mémoire - comment configurer l'utilisation de la mémoire OrientDB

Je me demande s'il y a une façon configurer les paramètres de mémoire d'OrientDB pour mieux «partager» l'espace mémoire au sein d'un processus Java (particulièrement lorsque OrientDB n'est pas nécessairement le module «primaire/unique» en cours de traitement).

Par ex
Le profil de la mémoire ci-dessous montre OrientDB exécuté seul en dehors de notre application (nous l'avons utilisé pour tester la charge). OrientDB fait bien!

-Xmx500m -Dstorage.diskCache.bufferSize = 500

Memory Profile
Comme vous pouvez le voir, OrientDB rend hommage à la limite de 500Mo très bien. Cependant, lorsque nous le remettons dans notre application et que toute autre partie de notre application nécessite plus de mémoire pour faire autre chose, vous pouvez voir comment cela pourrait être un problème, surtout si OrientDB est à l'une des zones de pointe ci-dessus. C'est là qu'une erreur de mémoire insuffisante se produirait, lorsque OrientDB semble rivaliser avec la mémoire de l'application dans laquelle il est intégré.

Des pensées? Y a-t-il d'autres paramètres de mémoire que nous devrions essayer d'ajuster?
Merci!

+0

Nous avons fini par exécuter OrientDB dans un service distinct afin qu'il ne soit pas en conflit avec l'espace mémoire de notre application. – 11101101b

Répondre

0

Après plusieurs expériences avec OrientDB, nous avons déterminé qu'il n'avait jamais été prévu d'être un citoyen de seconde classe dans l'espace de processus. Je veux dire que OrientDB est conçu pour être "le processus" et pas conçu pour être utilisé comme l'intégration de SQLite pour une utilisation légère dans une application. En tant que tel, nous avons déplacé OrientDB dans un service/processus séparé afin qu'il ne soit pas en conflit avec l'espace mémoire de notre application. Cela semble fonctionner correctement de cette manière.