title: How can I run Neo4j with larger heap size, specify -server and correct GC strategy
body: <p>As a someone who never really messed with the JVM much how can I ensure my Neo4j instances are running with all of the recommended JVM settings. E.g. Heap size, server mode, and -XX:+UseConcMarkSweepGC</p>
  
  <p>Should these be set inside a config file? Can I set the dynamically at runtime? Are they set at a system level? Can I have different settings when running two instances of neo4j on the same machine?</p>
  
  <p>It is a bit fuzzy at what point all of these things get set.</p>
  
  <p>I am running neo4j inside a docker container so that is something to consider as well. </p>
  
  <p>Dockerfile as follows. I am starting neo4j with the console command</p>
  
  <pre><code>
  FROM        dockerfile/java:oracle-java8
  
  # INSTALL OS DEPENDENCIES AND NEO4J
  
  ADD /files/neo4j-enterprise-2.1.3-unix.tar.gz /opt/neo
  RUN rm /opt/neo/neo4j-enterprise-2.1.3/conf/neo4j-server.properties
  ADD /files/neo4j-server.properties /opt/neo/neo4j-enterprise-2.1.3/conf/neo4j-server.properties
  
  #RUN mv -f /files/neo4j-server.properties /opt/neo/neo4j-enterprise-2.1.3/conf/neo4j-server.properties
  
  EXPOSE 7474
  
  CMD ["console"]
  
  ENTRYPOINT ["/opt/neo/neo4j-enterprise-2.1.3/bin/neo4j"]
  </code></pre>