FreeBSD 中不同的内存计数器有何含义?

FreeBSD 中不同的内存计数器有何含义?

顶部告诉我:

last pid: 64807;  load averages:  0.99,  0.97,  0.92                                          up 189+04:47:22 09:16:17
45 processes:  1 running, 44 sleeping
CPU:  0.4% user,  0.0% nice,  0.2% system,  6.4% interrupt, 93.0% idle
Mem: 222M Active, 2151M Inact, 2008M Wired, 823M Buf, 3499M Free
Swap: 8192M Total, 8192M Free

穆宁更清楚地显示了这一点:

rtr1 年内存使用量

如您所见,服务器拥有大约 8GB 的​​ RAM。我想知道我是否可以将这头野兽塞进一个更多的地方适度的 2GB 服务器。我想现在我知道活动和缓冲区是什么意思了。但我真的很关心“有线”和“不活动”的内存块。据我所知,这些并没有映射到任何现有流程。

请注意 12 月份绿色“活动”线路的上升情况:那时我们开始在此路由器上使用 BGP 守护程序。我不太清楚四月和五月发生了什么,但我记得做了系统升级并切换到包装袋大约在那个时候。

这是第一个路由器的备用路由器,内存较少(4GB):

rtr0 年内存使用量

看起来这台服务器在一半 RAM 的情况下运行得很好,并且仍然留下大约 2GB 的可用空间,这让我相信我可以为这台服务器切换到 2GB 的盒子,从而降低成本和维护......

有什么建议么?顶部显示的各种内存计数器是什么意思?更具体地说,是什么:

  • 积极的
  • 不活跃
  • 缓存
  • 缓冲器
  • 有线
  • 自由的

...实际意思?我已经发现一些帖子解释 VM 子系统的工作原理时,我记得我发出了“啊啊!”的感叹。大约12年前,我突然明白了这一切,但我忘了。 :) 即使是忠实的 FreeBSD 手册未能回答我的问题...

我可以降级到2GB吗?

答案1

  • Active:进程当前正在使用的内存
  • Inactive:已释放但仍被缓存的内存,因为可能会再次使用。如果Free需要更多内存,可以清除该内存并将其释放。该内存在需要之前不会被清除,因为“空闲内存是浪费内存”,保留旧数据以备再次需要时不需要任何成本。
  • Wired:内核正在使用的内存。该内存无法换出
  • Cache:内存用于缓存数据,如果需要可以立即释放
  • Buffers:磁盘缓存
  • Free:完全免费且可以使用的内存。InactiveCache并且Buffers如果它们被清理干净就可以变得自由。

因此,您只需添加计数即可InactiveFree其视为未使用。Wired是内核正在使用的内存,其中包括网络堆栈。运行netstat -m将为您提供网络堆栈内存使用情况的摘要。

根据您的图表,除了wired3 月初内存中令人担忧的跳跃之外,是的,您应该能够在 2GB 内存上运行该工作负载。如果这样做,请考虑运行 i386 而不是 amd64,因为每次内存分配将占用更少的空间,因为指针将是 32 位而不是 64 位。

相关内容