There's a ruby process that always sits at 50% RAM utilization regardless of how much RAM the instance is allocated. I'm running Node in a flex environment with a simple express app that connects to a Cloud SQL instance through sequelize. I've tried increasing the RAM to 4GB and it continue to sit at 50% usage.
It looks like the process is
/opt/google-fluentd/embedded/bin/ruby -Eascii-8bit:ascii-8bit /usr/sbin/google-fluentd --log /var/log/google-fluentd/google-fluentd.log --under-supervisor
I frequently run out of RAM, and when I do, the instance auto reboots itself and throws a 502 until it comes back online. Just can't seem to figure out why a ruby process is eating up so much RAM on my node instance.
The service will behave as you’d expect a high RAM usage process that’s holding memory; i.e. when RAM is needed, it flushes the process and allows that RAM to be allocated. The issue is that there’s so little headroom that when my node server needs more RAM and takes 50MB, it tops out the server and crashes before RAM is appropriated.
I believe this is a known issue that is currently being worked on. No ETA for a fix yet, but they say it's being worked on.
It seems like my RAM usage is back to normal. Must have been fixed on Google's side. If you're still having the issue, update your gactions
and run another deploy.
来源:https://stackoverflow.com/questions/47759924/google-cloud-platform-app-engine-node-flexible-instance-ruby-sitting-at-50-ram