横向如何计算内存使用量?

Modified on: Sun, 10 Jun 2018 05:54:53 +0800

我正在尝试调试Ubuntu 12.04服务器中的OOM情况,并查看Landscape中的Memory图,我注意到没有任何严重的内存使用量峰值。然后我查看了free命令的输出,我不太确定两个内存使用结果是如何相互关联的。

这是服务器上的横向输出:

$ landscape-sysinfo 
  System load:  0.0               Processes:           93
  Usage of /:   5.6% of 19.48GB   Users logged in:     1
  Memory usage: 26%               IP address for eth0: -
  Swap usage:   2%

然后我运行free命令,我得到:

$ free -m
             total       used       free     shared    buffers     cached
Mem:           486        381        105          0          4        165
-/+ buffers/cache:        212        274
Swap:          255          7        248

我可以理解2%的交换使用率,但26%的内存使用量来自哪里?

最佳答案

在风景中

landscape-sysinfo实际上直接从/proc/meminfo获取数据:

dpb@helo:~$ cat /proc/meminfo |egrep 'MemTotal:|Active:'
MemTotal:       12286760 kB
Active:          3794832 kB
dpb@helo:~$

在这种情况下,“内存使用”的计算将是:

((MemTotal - Active) / MemTotal) * 100

您可以在以下位置查看这些计算:

/usr/share/pyshared/landscape/sysinfo/memory.py /usr/share/pyshared/landscape/lib/sysstats.py

直接从/proc/meminfo获取数据:

免费

free实用程序也直接从/proc/meminfo获取数据:

存储

  • 总计:MemTotal
  • 使用:MemTotal - MemFree
  • free:MemFree
  • buffers:Buffers
  • 缓存:Cached

缓冲器/高速缓存

  • 使用:MemTotal - MemFree - Buffers - Cached
  • free:MemFree + Buffers + Cached

交换

  • 总计:SwapTotal
  • 使用:SwapTotal - SwapFree
  • 免费:SwapFree

总计

  • 总计:MemTotal + SwapTotal
  • 使用:MemTotal - MemFree + SwapTotal - SwapFree
  • free:MemFree + SwapFree

更正了缓存 - lzap

作者:lzap,dpb

相关问答

添加新评论