Thanks Santi.
I've cc-ed the list as this is probably a common question. The memory allocation can be manipulated in the scripts [1]. On Debian (Ubuntu) machines this manipulates the config in this file:
/etc/default/tomcat7
and specifically the line:
JAVA_OPTS="-Xmx2g -Xms2g -XX:MaxPermSize=256m -Xss256k"
For production systems, if you have the ability to use more than 1 machine, I would recommend setting up SOLR on a separate machine. Theres a playbook for this here [2].
The biocache can point to a different SOLR server by changing the following property in /data/biocache/config/biocache-config.properties
# The URL of SOLR services. In the case of embedded SOLR (no for production), this could be a directory path instead solr.home=http://localhost:8080/solr
Cheers
Dave Martin
[1] https://github.com/AtlasOfLivingAustralia/ala-install/blob/master/ansible/ro... [2] https://github.com/AtlasOfLivingAustralia/ala-install/blob/master/ansible/so...
________________________________________ From: Santiago Martinez de la Riva [sama@gbif.es] Sent: 09 October 2014 20:14 To: Martin, Dave (NRCA, Black Mountain) Subject: RE: [Ala-portal] A little doubt about SOLR/JVM configuration
Hi Dave,
Im sure that with you experience you can help me with this topic. Now I'm having this problem with solr and jvm:
ERROR SolrCore org.apache.solr.common.SolrException: Error while processing facet fields: java.lang.OutOfMemoryError: Java heap space
I think that I have to config JVM_ARG to assign more memory to the Java heap, but if I'm executing JAVA in a VM with 32 GB and SOLR is consuming more or less 14GB with 10 millions of records. What do you recommend me to assign to Java Heap.
Export JVM_ARGS="-Xmx YYYY m -XX:MaxPermSize= ZZZZ m"
Thanks in advance, Santi.