NIS (nem-docker) crashing with GC overhead limit exceeded

Hi. I’m a noob on this forum but I’ve owned XEM for 9 months and was successfully running a NIS node in a DigitalOcean Docker instance before.
Now I’m running a node using nem-docker on a different VPS (KVM)
But it keeps crashing with the following error:

2018-01-03 23:29:20.897 WARNING ESC[0;33mTimer SYNC raised exception: java.lang.OutOfMemoryError: GC overhead limit exceededESC[0m
java.util.concurrent.CompletionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273)
        at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280)
        at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1629)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded

It doesn’t even crash properly: service.sh status shows nis as still running. But it no longer answers network requests or keeps up to date with the chain. I have to stop and restart it, then wait for ages for the chain to load up.

The VPS is not running out of memory. I’m guessing it’s hitting some sort of Java internal limit.

This StackOverflow thread suggests that hitting the GC limit may be indicative of a code problem rather than an environment problem.

Has anyone else seen this error or know how to fix it?

Thanks
Ben

How many RAM do you have reserved in start script for java process?

Looks like supervisorctl is configured with:
command=bash -c 'sleep 1 && exec java -Xms512M -Xmx1G -cp “.:./:…/libs/” org.nem.deploy.CommonStarter’
Too low?