我的记忆已满但进程列表为空

Sey*_*yed 5 ram

问题

我的记忆已满,但进程列表中没有繁重的程序!


用法:

总内存为 4GB,但只有 400MB 可用:

查看用法截图


监控htop

排序时%MEM-> 繁重的程序只使用 1% 的内存!

哪个进程填满了我的 RAM?

见 htop 屏幕截图

kos*_*kos 2

我的内存已满,但进程列表中没有重型程序!

这是因为内存充满了由内核缓存的文件系统元数据(又名“缓冲区”)和文件内容(又名“缓存”)。

由于程序/用户在短时间内多次访问此类资源是很常见的,并且不使用内存是一种浪费,因此内核会缓存它们,以便比从磁盘再次读取它们更快地访问它们。

缓存数据的确切数量在第 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

             total       used       free     shared    buffers     cached
Mem:          3838       2895        942        120        461        947
-/+ buffers/cache:       1487       2350
Swap:         4394        615       3779