the good news is that there appears to be no memory leak or anything untoward with the memory util of all the various processes. What is evident is that, according to this:
(hostname) #show memory debug
memory snapshot: Tue Apr 7 01:58:34 2020
=========================================
Memory (Kb): total: 5172096, free: 902656
there is just under 1G of memory "free". Actually this is not the whole story, there's about 2G of memory lying around in Inactive(file) which is a normal state of affairs for a Linux based OS (as the controller is)
==================
Memory Statistics
==================
MemTotal: 5172096 kB
DPMem: 2375680 kB
MemFree: 900032 kB << what the CLI says
Buffers: 63488 kB
Cached: 729344 kB
SwapCached: 0 kB
Active: 1872576 kB
Inactive: 1962880 kB
Active(anon): 992192 kB
Inactive(anon): 0 kB
Active(file): 880384 kB
Inactive(file): 1962880 kB << doesnt take into account
Unfortunately determining the free memory of a Linux based system is not a simple single value, you can read up more here. In actuality the memory shown as "Inactive(file)" is also mostly available should the system need it, some 1.9G of memory.
In more recent ArubaOS versions (I see this is a 2 year uptime controller running code from 2017.... that's a while!) we have a new variable for holding what is the estimated free memory of the system, named "MemAvailable", example shown below (albeit from a lightly loaded 6.5.4.15 controller)
==================
Memory Statistics
==================
MemTotal: 5171904 kB
DPMem: 2375680 kB
MemFree: 2690368 kB <<
MemAvailable: 3505344 kB <<
Buffers: 56640 kB
Cached: 814976 kB
SwapCached: 0 kB
Active: 1916672 kB
Inactive: 101504 kB
Active(anon): 1798080 kB
Inactive(anon): 0 kB
Active(file): 118592 kB
Inactive(file): 101504 kB
it has a higher value than "MemoryFree" and all CLI commands, dashboards, AMON and SNMP (etc.) all now use this value.
In summary, as long as you're not finding that memory is dropping more rapidly than usual (this is key, how has it behaved over the last day, week etc.) and noting that it's normal that you will see it slowly consume memory due to caching - then things are OK. In a controller with only 5G of memory, to have around 800-900 M free is OK, and that's with real consumed memory (not this kind of cached inactive memory).
TL;DR; By my eye, everything looks OK here, if you consider to schedule an upgrade or even just a reboot, the free mem will shoot back up and the process will slowly repeat over 2years.