出于某种原因,我的存储服务器总是在消耗内存,但只是到了一个有限的点,而不是它对我的眼睛至关重要。
我的 storageserver 是使用 intel xeon e5-1620 32GB ram ddr4 ecc reg 4x segate 10TB hdd exos 驱动器的自制服务器 - > 使用 zfs 的 raid5
运行的服务:zfs samba prometheus 和用于 grafana 监控的节点导出器。我的服务器正在运行 ubuntu 服务器 18.04.4
当我重新启动我的服务器时,它使用了大约 800MB,而此时它使用了大约 16GB,这要多得多,我已经重新安装了操作系统以避免任何类型的问题。
我有 2 个来自系统监控和 htop 的屏幕截图。在 htop btw 中,我在列表中看到了 10 次进程,这适用于每个核心吗?-> 如果不是,为什么?
ZFS 使用它自己的称为 ARC 的缓存,而不是常规的 Linux 页面缓存。这不会在顶部显示为“缓存”,但它就像常规缓存一样工作,因为它在内存压力下被释放。这就是为什么您会看到内存“丢失”的原因。如果你这样做
你会看到你得到了所有的内存(然后你的磁盘读取将再次变慢,直到缓存预热。默认情况下,ZFS ARC 的上限为检测到的内存的 50%,这就是为什么你会看到内存使用稳定期的原因16-17GB。
关于您的第二个问题,许多程序不是单线程的,有些程序分叉许多线程,有些程序很多进程。一些内核进程的每个 CPU 线程都有一个单独的实例。这就是为什么您会看到某些进程的多个实例。