We want to run multiple instances of OpenMRS, one instance per organization using it, and we're hoping to have hundreds of organizations.
Initially we had thought of multiple OpenMRS instances on a single machine or Tomcat Virtual Hosts ( http://wiki.apache.org/tomcat/TomcatDevelopmentVirtualHosts and http://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html), the problem with this is that if we need to restart Tomcat for one instance, it'll bring down all of the instances, and that's not acceptable for a production server. So the next option was to evaluate multiple instances of Tomcat (whether on a single JVM or multiple JVMs) versus multiple virtual machines (VMs) each with one Tomcat/OpenMRS instance. Below are what I've read and my assumptions, which I would like for people to comment and correct if any are wrong. Benefits of multiple Tomcat instances on a single VM or server - Less memory usage therefore can run more instances on the same amount of VM or server RAM. For example, my experience is that you need atleast 1.5 Gb per VM to be able to run Tomcat and an instance of OpenMRS, whereas on a 6 Gb machine I've seen people running up to 6 Tomcat instances. - Especially since OpenMRS doesn't require that much memory (-Xmx512m -Xms512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=128m) - I haven't tested it, but my guess is that we could get go with 1024 Mb per Tomcat instance, which means that in a 8Gb machine if you had VMs you could host 4 (4 1.5 Gb VMs, and 2 Gb for the main server) and for Tomcat you could host 7 (1 GB each and 1 Gb for the server) - It is quite common to use multiple Tomcats behind Apache to do load balancing or for clustering. Benefits of single Tomcat instance per VM and multiple VMs - Easier to install, since can start a VM, and copy the image. Compared to having to install install another separate Tomcat instance, configure it's settings, run through the OpenMRS setup, and then copy the production database over. - Easier to maintain since all settings are identical within each VM (for each instance of Tomcat you have to specify a different port and folder locations) Overall the better use of RAM in servers is the big improvement for us because there are pages on how to install multiple tomcat instances. Does anyone have any other points of why we shouldn't do it this way? Does anyone know a knowledgeable sysadmin with experience in this that we could ask? Joaquín ___________________________________________________________________ Gerente de Desarrollo, eHealth Systems <http://www.ehs.cl/> Research Fellow, Escuela de Medicina de Harvard <http://hms.harvard.edu/> Moderador, GHDOnline.org <http://www.ghdonline.org/> _________________________________________ To unsubscribe from OpenMRS Implementers' mailing list, send an e-mail to [email protected] with "SIGNOFF openmrs-implement-l" in the body (not the subject) of your e-mail. [mailto:[email protected]?body=SIGNOFF%20openmrs-implement-l]

