Brief problem description: A 64-bit Gentoo on Intel Core-2 Q6600 reports about 3GB used out of 8GB total memory after reboot. This memory is neither claimed by any process, nor is it used by buffers/cache.
Context: I have first noticed this behavior after the OOM killed the emerge
process when trying to build octave from source. When the system became responsive again, there still remained about 3GB of reportedly used memory that was not used by any process. (Please note, that I can't say for sure that this was really on the beginning - maybe I just didn't notice before.)
I tried reboot, as I am not familiar with the OOM possible issues, but the memory was reportedly used again.
Then I tried Memcheck86+ which reported one "failing address" error on 3246.3MB (test repeated 5x). I lowered the RAM frequency and the error disappeared (test repeated 3x).
However, on my Gentoo, 3GB is persistently reported as used with no apparent explanation (please see the diagnostic reports below).
I have also tried a live distro (Parted Magic), which apparently behaves normally (about several hundreds of used memory after boot up).
Any suggestions about the possible cause or even solution?
Edit: I am now able to overcome the problem, but still could not explain it. I describe what I've tracked so far:
- The 3GB of memory is not used when started in a single-user mode.
Starting
iptables
results in the 3GB usage, while dmesg reports:nf_conntrack: falling back to vmalloc
subsequent stopping
iptables
does not revert the process, the memory remains used.
Then I changed my kernel configuration so that the nf_conntrack
is no longer built-in, but rather it is loaded as module. After reboot, iptables
starts without the falling back to vmalloc
message and also without consuming the 3GB.
I have no idea, how this can be explained. Maybe some kernel developer can help explaining, what exactly could have caused this behavior?
Relevant reports:
emerge octave
- i.e. not my own build. I've edited the post appropriately. Thanks.nf_conntrack: falling back to vmalloc.
message of dmesg seems to be the key. But until now I didn't get the whole point. If I do, I will update the post./proc/net/nf_conntrack
? Each one takes 200-300 bytes