On my research image, I'm running two content delivery environments (staging and live) Each of these has the following default settings for the services. (Xms is the amount of heap memory the VM is allocated at startup, and it may grow to Xmx)
Service -Xms -Xmx ======= ==== ==== Content 256m 512m Context 256m 256m CID 256m 512m Deployer 256m 256m Discovery 128m 128m Preview 256m 384m
As each service runs in its own process, they consume even more memory than is allocated for the java heap. It's easy to see how the image has 4 or 5 Gb in the air before it's even started to process anything.
Obviously, I can try to run just live or just staging, but I'm hoping that I can get my system running more smoothly just by managing these memory allocation settings. It seems likely that the defaults set by SDL are intended to be a reasonable starting point for production use.
Given the focussed responsibilities of these services, I'm hoping to trim them down considerably, but I'd also like to avoid triggering strange behaviour. Much as I admire Bill Gates, perhaps it might be extreme to dial them all back to 640k.
For a small system, what would the smallest reasonable values be? If I overdo it, should I expect to see obvious Out of Memory exceptions, or are things likely to fail in strange ways? If anyone has experience of running a trimmed system, I'd love to hear how small you've managed to get it while remaining stable.