顶部告诉我:
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
穆宁更清楚地显示了这一点:
如您所见,服务器拥有大约 8GB 的 RAM。我想知道我是否可以将这头野兽塞进一个更多的地方适度的 2GB 服务器。我想现在我知道活动和缓冲区是什么意思了。但我真的很关心“有线”和“不活动”的内存块。据我所知,这些并没有映射到任何现有流程。
请注意 12 月份绿色“活动”线路的上升情况:那时我们开始在此路由器上使用 BGP 守护程序。我不太清楚四月和五月发生了什么,但我记得做了系统升级并切换到包装袋大约在那个时候。
这是第一个路由器的备用路由器,内存较少(4GB):
看起来这台服务器在一半 RAM 的情况下运行得很好,并且仍然留下大约 2GB 的可用空间,这让我相信我可以为这台服务器切换到 2GB 的盒子,从而降低成本和维护......
有什么建议么?顶部显示的各种内存计数器是什么意思?更具体地说,是什么:
- 积极的
- 不活跃
- 缓存
- 缓冲器
- 有线
- 自由的
...实际意思?我已经发现一些帖子解释 VM 子系统的工作原理时,我记得我发出了“啊啊!”的感叹。大约12年前,我突然明白了这一切,但我忘了。 :) 即使是忠实的 FreeBSD 手册未能回答我的问题...
我可以降级到2GB吗?
答案1
Active
:进程当前正在使用的内存Inactive
:已释放但仍被缓存的内存,因为可能会再次使用。如果Free
需要更多内存,可以清除该内存并将其释放。该内存在需要之前不会被清除,因为“空闲内存是浪费内存”,保留旧数据以备再次需要时不需要任何成本。Wired
:内核正在使用的内存。该内存无法换出Cache
:内存用于缓存数据,如果需要可以立即释放Buffers
:磁盘缓存Free
:完全免费且可以使用的内存。Inactive
,Cache
并且Buffers
如果它们被清理干净就可以变得自由。
因此,您只需添加计数即可Inactive
将Free
其视为未使用。Wired
是内核正在使用的内存,其中包括网络堆栈。运行netstat -m
将为您提供网络堆栈内存使用情况的摘要。
根据您的图表,除了wired
3 月初内存中令人担忧的跳跃之外,是的,您应该能够在 2GB 内存上运行该工作负载。如果这样做,请考虑运行 i386 而不是 amd64,因为每次内存分配将占用更少的空间,因为指针将是 32 位而不是 64 位。