I'm experiencing some strange memory management behaviour on Squeeze with Kernel 2.6. I'm trying to get to the bottom of this with nmon.
Sometimes this will freeze up the system for 30 seconds to 5 minutes.
The server has 4GB of RAM.
The figures from nmon are:
- +1.6GB memfree.
- cached dropped by ~350MB
- swapcached dropped by ~80MB
- swap free jumped by ~200M
- active memory dropped by ~1.3GB
When this happens, the server isn't near any limits. Very soon after it happens, the active memory creeps back up, along with cached... and naturally memfree drops.
This doesn't appear to be a runaway process. The OS just seems to reallocate a bunch of ram very suddenly, then it slowly reallocates it back. Swappiness shouldn't be a factor because swap is barely ever touched.
Is there any way to track what is happening? Why does this free memory suddenly appear in seconds, only to be given back to the cache within 30 minutes?