On Sunday, 11 April 2021 at 09:10:22 UTC, tchaloupka wrote:
Hi,
we're using vibe-d (on Linux) for a long running REST API server and have problem with constantly growing memory until system kills it with OOM killer.

[...]

But this is very bad for performance so we've prolonged the interval for example to 30 seconds and now memory still goes up (not that dramatically but still).

[...]

So it wastes a lot of free space which it can't return back to OS for some reason.

Can these numbers be caused by memory fragmentation? There is probably a lot of small allocations (postgresql query, result processing and REST API json serialization).

We have similar problems, we see memory usage alternate between plateauing and then slowly growing. Until it hits the configured maximum memory for that job and the orchestrator kills it (we run multiple instances and have good failover).

I have reduced the problem by refactoring some of our gc usage, but the problem still persists.

On side-note, it would also be good if the GC can be aware of the max memory it is allotted so that it knows it needs to do more aggressive collections when nearing it.

Reply via email to