Written by

WebV Lead Server Developer at WebV Systems - Northern Lincolnshire & Goole NHS FT
Question Matthew Waddingham · May 26, 2021

Overhead and memory settings for multiple instances of Cache

We've traditionally run a selection of development environments from a single cache instance using different namespaces for DEV TEST PREP etc. This has come with a few drawbacks, mainly that you then cant break down into namespaces per environment and everything is sharing various options.

Is there a massive overhead to running multiple cache instances from the same 'box' instead?

How best to share the memory setup in that situation, we usually pre-define around 80% for the instance, do we just share that evenly between the multi instance scenario?

Product version: Caché 2018.1

Comments

Vic Sun · May 26, 2021

Hello Matthew,

Out of curiosity, what are some examples of things that you don't want shared within one instance?

I'm not sure about the per-instance overhead, I don't know how common of a scenario that is, so you may want to test it out. With multiple instances, you would have multiple write/journal daemons. I wonder if your current setup benefits from the shared buffer pool, or if your separate namespaces are handling totally different sets of data.

Re: the memory split, I think that depends on how much activity you're running through each instance. If you think they'll all need the same amount of memory, an even split might be fine.

Is there any consideration to splitting out to separate servers? It sounds like isolation/granularity are some of the things you are looking for, and separate servers would help with that.

0
Matthew Waddingham  May 27, 2021 to Vic Sun

At present, each namespace is an entirely separate self contained system. We'd like each to better represent being like the live setup so that apps in development and testing environments behave how they would when going live if you see what I mean. Maybe a scaled down test would be the best approach to see if it has any major problems.

0
Alexander Pettitt · May 26, 2021

I have 21 instances of Cache running on a single server.

There are a lot of pluses: simpler cpf, database snapshots, easier downtime negotiations

I would manually specify memory since you likely have very few simultaneous users.

Here is a link Sizing System Memory for Caché

0
Dmitry Maslennikov  May 26, 2021 to Alexander Pettitt

Switch to Docker will have much more pluses in your case.

0
Matthew Waddingham  May 27, 2021 to Alexander Pettitt

That sounds quite hopeful, do they communicate between each other out of interest?

0
Alexander Pettitt  May 27, 2021 to Matthew Waddingham

Yes, the instances interconnect and share files.

0
Dmitry Maslennikov · May 26, 2021

If you currently have running instance with all the namespaces together, for some time, you may look at ^GLOBUFF, to see how your global buffers used by now, and decide how to split that buffer for each instance.

0