大约一年前,我将笔记本电脑升级为 8 GB 内存。我使用的是 Windows 8 和 4 GB,根据任务管理器显示,这在所有情况下都不够用。升级后不久,我切换到 Debian 7 作为我的主要操作系统。查看 Debian 上的系统信息程序中的内存使用情况时,我总是想知道系统如何在仅使用半 GB 或最多 1 GB 的内存的情况下打开许多应用程序并连续工作数小时。当我运行命令时,我感到很困惑free
。它报告的内存使用量比系统信息多得多。目前,系统信息报告使用了 582 MB RAM 和 0 MB 交换空间,而运行时free -g
报告使用了 2 GB:
$ free -g
total used free shared buffers cached
Mem: 7 2 5 0 0 1
-/+ buffers/cache: 0 7
Swap: 14 0 14
为什么这两个报告的内存使用量不同?另一件让我感到困扰的事情是,即使在使用 VMware 运行虚拟 Linux 计算机时,我也几乎从未使用过 4 GB 的 RAM。有没有办法告诉系统使用更多内存并以某种方式提高性能?
答案1
这两个工具只是对内存“使用”的定义不同。free
如果内存不是空闲的,该命令会认为内存已使用。系统信息会认为内存空闲,即使它包含可以使用的信息,只要这些信息也可以丢弃。因此,例如,包含也可以从磁盘读取的信息的内存在 free 命令中被视为已使用,但在系统信息中则被视为空闲。
系统将使用尽可能多的内存来提高性能。如果没有切实可行的方法保存有用的信息,则保持内存空闲是系统的最后手段。