FWIW we are investigating the possibility of running multiple instances of
Tryton on a single server or server farm to serve multiple facilities
within one geographic region. For larger facilities, they get their own
physical server with tryton and postgresql installed. However, for smaller
facilities, and to enable a faster rollout to these facilities, we are
investigating alternatives to installing physical servers everywhere.
The issues I would like to discuss are related to the following questions.
All the questions assume that I want to run 60 tryton instances each with
approximately 7000 party.party records and we're using a customised GNU
Health.
1. As seen above, I use the number of party.party records as a kind of
gauge for the size of the database. Is there another metric that one may
suggest? Are there any inherent dangers in using this?
2. In the case of a Tryton server farm, which ways have members of the
community used that worked well?
- One user per instance, all instances in one OS container? or
- One VM container per instance each vm container has its own
PostgreSQL + Tryton installation?
- One VM per instance all talking to a central Postgres
- Something else?
3. Are there any recommendations on sizing a server to determine how
many instances can run on a given server? Essentially an instance to server
ratio.
4. Apart from trytond, postgres, logs, attachments, json-data, are there
other things to consider for a sing tryton server instance?
Some justification and so, it doesn't seem like I'm only asking.
1. I figure since party.party represents the subject of the interaction
most times. If *P* is the number of party.party records, I figure the
growth rate of the database is *tkP.* Where t is time and *k* represents
the average number of "transactions" per party. In the health context this
could be evaluations.
2. I'm thinking that it would be better to just run multiple trytond
instances on the bare server. No VM separation/containment. I wouldn't even
want to install trytond multiple times. Each different user, one per
instance, would all run the globally installed trytond.
3. I have nothing here. I have 5 instances on a 4GB RAM VM and it's
painful. Help and experience requested here.
4. Seriously, with the setup I described in my #2, creating a new instance
would be (1) create the user, (2) unzip the trytond-user-skel.tar.gz, (3)
update config and run.
Thanks for your insight.
---
MM
PS. Please don't laugh too hard if my idea of large is closer to your idea
of small.