PersianMan Asked: 2016-03-07 22:34:47 +0800 CST2016-03-07 22:34:47 +0800 CST 2016-03-07 22:34:47 +0800 CST 我的内存已满,但进程列表为空 772 问题 我的内存已满,但进程列表中没有繁重的程序! 用法: 总内存为 4GB,但只有 400MB 可用: 监控htop: %MEM当按-> 繁重的程序排序时,只使用 1% 的内存! 哪个进程填满了我的 RAM? ram 1 个回答 Voted Best Answer kos 2016-03-14T22:47:18+08:002016-03-14T22:47:18+08:00 我的内存已满,但进程列表中没有繁重的程序! 这是因为内存中充满了内核缓存的文件系统元数据(又名“缓冲区”)和文件内容(又名“缓存”)。 由于程序/用户通常在短时间内多次访问这些资源并且不使用内存是一种浪费,因此内核缓存它们以便比从磁盘再次读取它们更快地访问它们。 第 5 列和第 6 列报告了缓存数据的确切数量: 缓存的已用空闲共享缓冲区总数 电话:3838 2895 942 120 461 947 -/+ 缓冲区/缓存:1487 2350 交换:4394 615 3779 因为如果内存需要其他东西,缓存的数据可以立即删除,缓存的数据并没有真正被占用,实际上可供程序使用它。 第三行报告了“真实”(缓冲区/缓存数据的净值)/可用内存(“-/+ 缓冲区/缓存:”): 缓存的已用空闲共享缓冲区总数 电话:3838 2895 942 120 461 947 -/+ 缓冲区/缓存: 1487 2350 交换:4394 615 3779 为方便起见,您可以添加几个别名以仅将“真实”已用/可用内存打印到~/.bashrc: alias real_used="free -m | awk 'NR==3{print $3}'" alias realf_free="free -m | awk 'NR==3{print $4}'"
这是因为内存中充满了内核缓存的文件系统元数据(又名“缓冲区”)和文件内容(又名“缓存”)。
由于程序/用户通常在短时间内多次访问这些资源并且不使用内存是一种浪费,因此内核缓存它们以便比从磁盘再次读取它们更快地访问它们。
第 5 列和第 6 列报告了缓存数据的确切数量:
因为如果内存需要其他东西,缓存的数据可以立即删除,缓存的数据并没有真正被占用,实际上可供程序使用它。
第三行报告了“真实”(缓冲区/缓存数据的净值)/可用内存(“-/+ 缓冲区/缓存:”):
为方便起见,您可以添加几个别名以仅将“真实”已用/可用内存打印到
~/.bashrc
: