9.4.10. 内存使用

对你来说,这里有两种可用的方法来得到内存的使用情况。

  • /var/log/dmesg” 中的内核启动信息包含了可用内存的精确总大小。

  • free(1) 和 top(1) 显示正在运行的系统中内存资源的相关信息。

下面是一个例子。

  1. # grep '\] Memory' /var/log/dmesg
  2. [ 0.004000] Memory: 990528k/1016784k available (1975k kernel code, 25868k reserved, 931k data, 296k init)
  3. $ free -k
  4. total used free shared buffers cached
  5. Mem: 997184 976928 20256 0 129592 171932
  6. -/+ buffers/cache: 675404 321780
  7. Swap: 4545576 4 4545572

你可能会觉得奇怪:“dmesg 告诉你 free 为 990 MB,而 free -k 告诉你 free 为 320 MB。这丢失了超过 600 MB ……”。

别担心 “Mem:” 这行中 “used” 较大的值以及 “free” 较小的值,放轻松,你需要查看的是下面的那个(在上面的例子中它们是 675404 和 321780)。

对于我的 MacBook,有 1GB=1048576k 内存(显卡系统用掉一些),我看到的如下。

表 9.16. 报告的内存大小

报告大小
dmesg 中 total 的大小1016784k = 1GB - 31792k
dmesg 中的 free990528k
shell 下的 total997184k
shell 下的 free20256k(但有效的为 321780k)