可能重复:
我如何监控内存使用情况?
我在系统监视器中看到,已用内存只有 332MB,因此可用内存约为 3.4GB,但是当我使用命令行:时free -m
,已用内存为 1GB,可用内存只有 2.8GB。
我使用命令行:cat /proc/meminfo -> result same free -m
。
为什么?谁能帮助我?
答案1
都在那里。第一行free
显示缓冲区占用 124,缓存占用 543;543 + 124 = 667,1000 - 667 = 333。这是第二行free
(实际上是 332)显示的。
这就是“空闲内存”和“可用”内存之间的区别。缓冲区/缓存可以随时释放,因此它们实际上不算作系统监视器中的“不可用”内存,但严格来说,它们也不是空闲内存。
从用户的角度来看,“可用”内存更为重要。Linux 将最大化缓冲区/缓存以加快系统速度,但这并不意味着您的内存已满,并且系统会因可用内存不足而变慢。
答案2
查看屏幕截图中空闲输出的第二行。它标记为“-/+ buffers/cache:”
在哪里可以找到等效值。
更多信息请参见http://www.redhat.com/advice/tips/meminfo.html
缓冲区:缓冲区缓存中的内存。如今作为指标几乎毫无用处
缓存:页面缓存(磁盘缓存)中的内存减去 SwapCache
SwapCache:曾经被换出的内存,现在又被换回,但仍在交换文件中(如果需要内存,则不需要再次换出,因为它已经在交换文件中。这样可以节省 I/O)