这是一个关于 Unix 操作系统如何报告内存使用情况的规范问题。
类似问题:
我有运行Debian 6.0.6 Squeeze 的生产服务器
#uname -a
Linux debsrv 2.6.32-5-xen-amd64 #1 SMP Sun Sep 23 13:49:30 UTC 2012 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
每天cron以 root 身份执行备份脚本:
#crontab -e
0 5 * * * /root/sites_backup.sh > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
#nano /root/sites_backup.sh
Linux debsrv 2.6.32-5-xen-amd64 #1 SMP Sun Sep 23 13:49:30 UTC 2012 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
一切正常,但我注意到 Munin 的内存图显示备份后缓存和缓冲区的增加。
然后我只是下载备份文件并删除它们。删除后 Munin 的内存图将缓存和缓冲区返回到备份前的状态。
这是穆宁图: …
我有一个相对较小的家用 Red Hat Linux 服务器(大约 8 GB RAM)。除了运行一些自制的应用程序来跟踪各种事情之外,我不使用它。在盒子上运行的唯一真实的东西是一个数据库和一个网络服务器。
我注意到,当使用 NMON 和 TOP 等工具检查系统计数器时,系统总可用内存相对较低(大约几百 MB),而数据库和 Web 服务器的活动内存仍然很低(仅总共消耗 3 GB)。即使包括所有其他正在运行的进程,总消耗的内存也小于 4 GB。
为什么 Red Hat Linux 报告的可用内存少于总内存减去运行进程的已用内存总和?