buff/cache 仅使用 28G。
$free -h
total used free shared buff/cache available
Mem: 188G 87G 72G 17M 28G 72G
Swap: 3.9G 0B 3.9G
该内存未被进程使用:
$ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }' | head
0.00 Mb COMMAND
753.30 Mb /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
440.66 Mb /usr/lib/polkit-1/polkitd --no-debug
297.09 Mb /usr/sbin/NetworkManager --no-daemon
297.00 Mb /usr/bin/python -Es /usr/sbin/tuned -l -P
216.72 Mb /usr/sbin/ModemManager
153.12 Mb /usr/sbin/rsyslogd -n
144.51 Mb /usr/libexec/dconf-service
87.64 Mb /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
72.33 Mb /sbin/audispd
已用 87G - 28G 缓存 = 59G 下落不明?
更新:
根据 Gilles 的说法,执行 .slab 时,slab 分配是不可见的free
。在分析slabtop
和计算了分配给“Slab”的内存后/proc/meminfo
,我得出了分配给该slab的内存总数:
平板:46.8651GB
其余的可能可以在 /proc/meminfo 中找到。如果我理解正确的话,Free 似乎将 inode 和 dentry 缓存纳入“已使用”类别。