Ubuntu 22.04系统使用ZFS时内存报告不一致的问题及相关咨询
Ubuntu 22.04系统使用ZFS时内存报告不一致的问题及相关咨询
我有一台运行Ubuntu 22.04的Linux机器,上面部署了一些服务,并且重度使用ZFS文件系统。我发现不同系统工具的内存报告存在严重差异。
各工具的内存报告情况
free命令输出:
# free -gh total used free shared buff/cache available Mem: 125G 119Gi 5.2Gi 1.0M 315Mi 4.5Gi Swap: 11Gi 0.0Ki 11Gi
top命令输出:
MiB Mem: 128492.1 total, 5506.6 free, 122668.6 used, 316.9 buff/cache
Prometheus node exporter同样报告内存使用率达96%,并以红色显示。
htop命令输出:
Mem: 125G used: 60.4G buffers: 8.27M cache: 59.8G
我了解buffers/cache相关的概念,但可以看到free工具并没有报告大量的缓存数据。我知道ZFS会预留内存用于缓存数据,但除了htop之外,其他系统工具都没有统计这部分内存。
我的问题:
- 看起来htop的内存报告比其他所有工具都准确,这是为什么?
- 如何查看ZFS实际预留的内存大小?
- 是否可以调整Prometheus node exporter,让它像htop一样准确报告内存使用情况?
- ZFS预留的内存是否可以被其他进程占用?
- 如何知道我的机器何时需要更多内存?我的意思是在开始使用交换空间之前如何判断?
备注:内容来源于stack exchange,提问作者Slava Fomin II




