When geth process consumes too much memory it gets killed (not at all gracefully) by Digital Ocean.

Partly solved the problem by implementing swap - Setting up geth Ethereum node to run automatically on Ubuntu. But still recieved one kill within 2 mln blocks download running geth --fast --cache=16.

Similar question: Is it possible to decrease RAM usage of go-ethereum(geth)? The answer here is - NO.

Is there a way to limit geth memory usage or maybe kill it "more gracefully" than Digital Ocean with something like monit?