slabtop shows live usage of the kernel's slab caches, the allocator for internal kernel objects such as dentries and inodes.
sudo slabtop -o | head -15 # one snapshot
sudo slabtop -s c # interactive, sorted by cache size
When free shows little memory but processes are not using it, a very large dentry or inode_cache (from scanning millions of files) is a common explanation, and it is reclaimable. It is only a problem if the total keeps growing under memory pressure (SUnreclaim in /proc/meminfo climbing). To drop reclaimable caches for a test (not as a routine fix): sync; echo 2 | sudo tee /proc/sys/vm/drop_caches. Related: vmstat, numastat.