Why is my On-Premises / Private Cloud Apigee server consuming so much RAM? (a.k.a. Are "free -m" and/or "top" giving me accurate information for my On-Premises / Private Cloud Apigee installation?)

Apigee Support sometimes fields concerns from customers that their VMs running Apigee components (CentOS VMs running Apigee RMPs, for example) are consuming all the available memory on the VM. This is usually not the case, but in fact may be related to some specifics of how the Linux kernel manages resources.

More detail can be found online; I'll also add my personal favorite link below. Suffice it to say, there is a very easy way to clear all pagecache, dentries, and inodes. This will have the net benefit of showing exactly how much memory the Apigee process(es) is/are consuming at a given time.

To do this, issue the following commands. Please note - it is best to avoid doing this under heavy load (more detail on why can be found in the linked article below).

$ sudo -i
# sync; echo 3 > /proc/sys/vm/drop_caches

Alternatively, if your system does not allow you to go to root shell (but you have sudo access for other tasks, specifically "sync" and the ability to touch /proc/sys/vm/drop_caches), you might be able to do it this way:

$ sudo sync ; echo 3 | sudo tee /proc/sys/vm/drop_caches

For reference, more detail on Linux kernel memory management can be found at the following link. There are MANY articles / blog posts about this; I personally find this contains just enough detail to explain this without overburdening the reader with too much:

https://www.blackmoreops.com/2014/10/28/delete-clean-cache-to-free-up-memory-on-your-slow-linux-serv...

I hope this helps. Thanks for reading!

Version history
Last update:
‎02-15-2017 10:08 AM
Updated by: