![我的公羊在哪儿?](https://linux22.com/image/1039581/%E6%88%91%E7%9A%84%E5%85%AC%E7%BE%8A%E5%9C%A8%E5%93%AA%E5%84%BF%EF%BC%9F.png)
我在运行 Ubuntu 12.04 的机器上安装了 2GB 内存。使用一段时间后,我发现我的内存被占用了很多。即使我关闭了所有程序,内存仍然没有足够的释放。
我附上了 2 张截图. 首先是“Gnome 系统监视器“(全部流程)第二是“顶部“(使用 sudo),均按内存使用量排序。从两者中可以看出,所有正在运行的应用程序加起来不可能占用 1GB 内存。前 7 个最大的程序总计 250,但其他程序要小得多(所有程序总计甚至不到 100MB)。缓存为 300MB(htop 上的黄色 |||),不包含在使用的 1GB 中。此外,260MB 已在交换中。(实际上占用了 1.3GB 的内存)
如果我启动带有许多选项卡的 Firefox(或 Chrome),则只有 1GB 可用,而不是 1.5 GB(假设 0.5GB 用于系统)。当我需要更多 RAM 时,就会进行交换。
那么我的内存在哪里?哪个程序正在使用它?我该如何释放它,以便供 Firefox 等使用?
Gnome 系统监视器
htop
答案1
free -g
可能是判断系统使用了多少 RAM 的最佳方法。请参阅 serverfault 问题这里。如果您使用,free -m
它将以 Mb 为单位给出详细数据。
在此示例中,来自具有 251Gb RAM 的服务器:
total used free shared buffers cached
Mem: 251 130 120 0 3 61
-/+ buffers/cache: 66 185
Swap: 5 0 5
实际只使用了 66Gb,但top
报告显示有 137Gb。RAM 不会从缓存中释放,直到另一个程序请求它,因此如果您打开另一个需要 RAM 的程序,它将被分配给该程序。
本质上我不会担心可用的 RAM,操作系统会处理这个问题。