I have a general question that I hope someone can clarify or point me to information to research more on. I have a CentOS 6.6 box that I've been trying to account for everything consuming memory in a very detailed manner. I've used the basics of tools like "free -m", "top", "vmstat", "collectl", "/proc/meminfo" and even run a crude command "ps aux | awk '{sum+=$6} END {print sum / 1024}" to estimate the RSS memory being used by the system. Even then I've not accounted for a portion of the used memory and I'd like to know how to do this if it's even possible?
For example my box has 192GB of physical memory of which only a tiny amount is available based on what free returns.
When I run "ps aux | awk '{sum+=$6} END {print sum / 1024}'" the value returned is: 165203MB (165GB) which is an estimate of all user space programs running. I have a single process configured to use 160GB of RAM for a specialty purpose. I know that I have ZFS configured to use about 16GB of RAM for ARC but aside from knowing that I configured this, what other method would itemize and show for me where this is being reserved from a kernel/system level? I know I can see the usage via running "cat /proc/spl/kstat/zfs/arcstats" which confirms I'm using all 16GB right now. Once I add in the 16GB to my 165GB I'm at 181GB of used memory. What's using the remaining 10GB? I'm assuming the kernel/OS uses some amount but how can I see this?
For example my box has 192GB of physical memory of which only a tiny amount is available based on what free returns.
Code:
root@system ~]# free -m
total used free shared buffers cached
Mem: 193661 191676 1984 68 77 344
-/+ buffers/cache: 191254 [COLOR="#FF0000"][B]2406[/B][/COLOR]
Swap: 1023 50 973
When I run "ps aux | awk '{sum+=$6} END {print sum / 1024}'" the value returned is: 165203MB (165GB) which is an estimate of all user space programs running. I have a single process configured to use 160GB of RAM for a specialty purpose. I know that I have ZFS configured to use about 16GB of RAM for ARC but aside from knowing that I configured this, what other method would itemize and show for me where this is being reserved from a kernel/system level? I know I can see the usage via running "cat /proc/spl/kstat/zfs/arcstats" which confirms I'm using all 16GB right now. Once I add in the 16GB to my 165GB I'm at 181GB of used memory. What's using the remaining 10GB? I'm assuming the kernel/OS uses some amount but how can I see this?