we recently suffered of memory exhaustion on our prod server.
The server is only running the knora stack.
The OS chose to kill
webapi (which did not manage to restart, but that’s another issue).
In order avoid this, I want to fix size limits to the containers.
So I looked at the documentation and advises.
It is not recommended to set index/cache (entity pool) of graphdb into the heap, so it is not feasible to fix for sure the size of the graphdb process. According to ontotext a rule of thumb is that the heap is 2/3rd of the host.
I would dedicate 1G for the host.
Commodity services and front ends are frugal but I think it is not wise to let a docker instance run on host with less than 500m of ram. app2, app1, traefik, redis with 500m each make 2G.
That makes 3G and leaves the rest of the server’s RAM for
Let’s assume that sipi is light and should be able to deal with at minimum 1G. There are 4G used.
In my case, the server is 16G, that I split in 4.5G for
api (4G in java heap, 500M for the rest) and 7.5G for
db which makes 5G for
Does someone has a wiser plan?