我在一台 2GB 的笔记本电脑上运行 ubuntu 8。每当我查看系统监视器时,我都会看到我的内存使用量略低于 1G。为什么 ubuntu 没有使用全部 2GB?
假设完整的 2GB 都被识别了,即系统监视器显示使用了 2GB 的 48%。
答案1
如果你想知道为什么它不将备用 RAM 用作缓冲区/缓存,原因是 Linux 不会预先读取内容。如果你打开几个程序,它会将从这些程序中读取的内容留在磁盘缓存中,但它没有类似超级提取来自 Windows Vista。
对于笔记本电脑来说,这可能是理想的。我怀疑任何类似 Superfetch 的算法都无法准确预测我将使用哪些应用程序,如果预测错误,就值得浪费电池。(尽管如果我预装了 Firefox,我会非常高兴!)
答案2
您在 ubuntu 上运行什么?您是否观察到任何性能故障并发现内存未被利用,或者这只是一般的观察。
如果您担心您的内存没有被使用,可能是因为不需要使用它。
尝试以下链接中的脚本,查看 Ram 的利用率。希望它能消除您的困惑。
答案3
嗯,一个答案是,页面被从物理内存中抛出(换出),因为它们最近没有被使用,所以将该内存用于磁盘缓存更有意义。(因为该缓存是更常用。)你可以尝试
swapoff -a
这将关闭分页。(实际上,它会卸载所有分页文件/分区。)这通常会导致程序挤占缓存,但也可能会让内存不足杀手杀死一些最耗电的进程。(比如 Firefox。)当你受够了,就这么做
swapon -a
(请注意,我说的是“当”,而不是“如果”......)
答案4
正如 Alex 所说,Linux 没有 Vista/Win7 的 Superfetch 之类的抢占式缓存机制,因此它通常只会在实际请求时使用内存。此外,根据您设置的 swappiness 值,它的分页速度可能比您所需的速度快得多