I have a server with 64 GiB RAM running 32 bit Debian GNU/Linux v7.9:
# uname -a Linux srv1 3.2.0-4-686-pae #1 SMP Debian 3.2.68-1+deb7u5 i686 GNU/Linux # free -m total used free shared buffers cached Mem: 64203 8352 55850 0 134 5861 -/+ buffers/cache: 2356 61847 Swap: 8582 0 8582
The problem is that the memory stays unused while it can be used for caching and thus improving system performance.
I have another server with the same hardware which runs 64 bit Debian GNU/Linux v8.1 and does NOT have such problem:
# uname -a Linux srv2 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux # free -m total used free shared buffers cached Mem: 64513 62750 1763 45 10235 42048 -/+ buffers/cache: 10466 54047 Swap: 8582 39 8543
The first server is actually busier than the second, so the problem is not that it does not have enough data to cache. Also the first server is not that busy in order the caches to be expired very quickly due to high memory demands from the userspace processes.
Can you please give me an idea why the memory on the first server stays unused ?
Some additional notes:
- The servers run stock Debian kernels
- I've not done custom /proc/sys/vm modifications
- The servers are used for the same purpose and run the same software
- The problem is also present on more than one server
- The biggest cache size I've seen on these servers is about 7-8 GiB