No, it's not normal behavior. Can you share command you use to run
bitcoind?
But seeing that you've already tweaked most of the mentioned configurations, it's only -maxmempool=<n> that you're missing.
-maxmempool=<n> default value is 300MB, which doesn't explain why OP's
bitcoind RAM usage is about 4GB.