我看到我的 8 核 RHEL5 服务器上的负载是0
或1
几周后。
但RAM总是被占满。我正在尝试调试该问题。我们如何诊断内存的去向?
答案1
在Linux中,RAM已满是正常的。查看输出cat /proc/meminfo
:
MemTotal: 2051700 kB
MemFree: 74376 kB
Buffers: 0 kB
Cached: 1562336 kB
...
正如您在我的示例输出中看到的,我总共有 2GB RAM,但只有 74MB 是可用的。这很正常。但是,请参阅Cached
:的值Linux 内核官方文档:
Cached: in-memory cache for files read from the disk (the pagecache). Doesn't include SwapCached
每个较新的操作系统都像这样处理页面缓存。当您启动应用程序时,代码和库将被加载到 RAM 中。它们一直保留在 RAM 中,直到另一个应用程序需要 RAM 并且没有可用的空闲 RAM。这就是为什么 RAM 总是满的。
如果您想知道占用的 RAM 量和需要时,您必须减去 和 的值,Cached
在我的例子中:MemFree
Memtotal
2051700 kB
- 1562336 kB
- 74376 kB
-------------
= 414988 kB
您看,真正需要的只是 415MB。