为什么Linux不使用任何内存进行缓存?

为什么Linux不使用任何内存进行缓存?

我目前正在使用 Linux 服务器托管 Web 应用程序。该服务器似乎不使用任何内存进行缓存。我注意到了这一点,因为我觉得这台机器相当慢。我以为它可能会耗尽内存。

有了 ssh 访问权限,我就可以执行“free -m”,它显示以下内容:

             已使用的、可用的、缓存的共享缓冲区总数
内存:1536 244 1291 0 0 0
-/+ 缓冲区/缓存:244 1291
交换:0 0 0

我认为,正常情况下它应该使用大约 90% 的可用内存进行缓存。我以前从未见过这种情况。

这可能是什么问题?

顺便说一句:它似乎是 RedHat。我对 RedHat 了解不多,因为我更喜欢 Debian。

答案1

您使用的是 OpenVZ 或 Virtuozzo VM。通过查找文件/proc/user_beancounters或目录进行确认/proc/bc;如果其中一个(或两个)存在,则肯定是 OpenVZ/Virtuozzo VM(这些位置仅存在于这些 VM 类型中)。如果不存在,则可能已从您所在的 VM 环境中修补了它们的存在(一些极其不道德的提供商会这样做以试图隐藏他们的狡猾,但没有缓存或缓冲区就是明证)。如果您购买了物理机器,那么您购买的就是劣质品。

答案2

看一下/proc/sys/vm/pagecache

该文件控制内核将使用多少内存用于文件系统缓存。

答案3

这不是 free 的输出的意思

IIRC 缓存是仍然缓存在内存中的交换量。

相关内容