Linux内存使用情况?

Jon*_*onu 2 linux memory linux-kernel

我们在托管 SAP 应用程序的服务器上有 1TB 内存。

当应用程序运行时,显示的内存使用top量约为 700GB。当应用程序停止时,显示的内存使用量top降至 10GB。服务器重新启动后,内存使用量将达到 1GB。

  • 即使没有应用程序正在运行,为什么top在重新启动后显示已使用 10GB 并获得 9GB?
  • 是否有可能在不重启的情况下获得 9GB?

的输出free -g

free -g 
                 total used   free shared buffers cached 
Mem:              1009  567   442    0      0     152 
-/+ buffers/cache:      415   594 
Swap:              1     0     1
Run Code Online (Sandbox Code Playgroud)

小智 5

Linux 使用 RAM 的方式与其他操作系统不同。

Linux 不会将未使用的 RAM放在那里,而是存储它认为可能在 RAM 中使用的数据——任何应用程序、文件等都可以缓存在这里。

因此,Linux RAM 使用率高于运行应用程序所使用的内存。这种额外的使用被缓冲以被其他事物起诉。运行free -h,在used下的第二行会告诉你很多“已用”的内存实际上只是被缓存了。

在所有内存都被缓存并且程序需要内存的情况下,它将从缓存中删除足够的内存以适合该程序。