我目前正在使用 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 缓存是仍然缓存在内存中的交换量。