景观如何计算内存使用量?

Dav*_*lla 6 server landscape memory

我正在尝试调试 Ubuntu 12.04 服务器中的 OOM 情况,并查看 Landscape 中的内存图,我注意到没有任何严重的内存使用峰值。然后我查看了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%
Run Code Online (Sandbox Code Playgroud)

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

$ free -m
             total       used       free     shared    buffers     cached
Mem:           486        381        105          0          4        165
-/+ buffers/cache:        212        274
Swap:          255          7        248
Run Code Online (Sandbox Code Playgroud)

我可以理解 2% 的交换使用率,但是 26% 的内存使用率从何而来?

dpb*_*dpb 8

在风景中

landscape-sysinfo实际上直接从/proc/meminfo以下位置获取其数据:

dpb@helo:~$ cat /proc/meminfo |egrep 'MemTotal:|Active:'
MemTotal:       12286760 kB
Active:          3794832 kB
dpb@helo:~$
Run Code Online (Sandbox Code Playgroud)

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

((MemTotal - Active) / MemTotal) * 100
Run Code Online (Sandbox Code Playgroud)

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

/usr/share/pyshared/landscape/sysinfo/memory.py
/usr/share/pyshared/landscape/lib/sysstats.py
Run Code Online (Sandbox Code Playgroud)

直接从/proc/meminfo以下位置获取数据:

在免费

free实用程序还直接从/proc/meminfo以下位置获取其数据:

内存

  • 全部的: MemTotal
  • 使用:MemTotal-MemFree
  • 自由: MemFree
  • 缓冲区: Buffers
  • 缓存: Cached

缓冲区/缓存

  • 使用:MemTotal- MemFree- Buffers-Cached
  • 免费电话:MemFree+ Buffers+Cached

交换

  • 全部的: SwapTotal
  • 使用:SwapTotal-SwapFree
  • 自由: SwapFree

全部的

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

更正缓存 -- lzap