对于一般探针(如 Prometheus Node Exporter、哪吒监控、ServerStatus、Zabbix 等)来说,它们检测到的总内存确实会随时缩小和放大。

探针获取内存数据的底层逻辑,绝大多数是定期读取 Linux 系统的 /proc/meminfo 文件中的 MemTotal 字段。在 KVM 的气球机制(Virtio Balloon)下,当宿主机回收内存时,它相当于在硬件层面动态“拔掉”了你的内存条;归还内存时,又相当于动态“插上”了内存条。因此,Guest OS(你的 Debian 13)会认为物理内存上限确实改变了。

这会带来一个非常棘手的监控副作用:基于百分比的内存告警会频繁失效或误报。例如,你设置了“内存使用率 > 80% 则告警”。当系统总内存从 14GB 突然被宿主机缩减到 7.3GB 时,即使你的实际业务进程只占用了 6GB,使用率也会瞬间从 42% 飙升到 82%,从而触发虚假告警。

实时监测气球内存的实操方法

要实时捕获这种变化,你可以在 SSH 终端中使用以下几种方法:

1. 持续观测 Total 内存的动态变化(最直观)
使用 watch 命令让系统每秒刷新一次 free 的结果。你可以直观地看着第一列的 total 数值像股票一样跳动。

watch -n 1 free -h

2. 追踪内核层面的 Balloon 驱动活动日志
当气球驱动执行大规模的充气(回收内存)或放气(分配内存)时,内核通常会记录相关动作。使用 -w 参数可以实时滚动查看内核日志。

# 实时滚动监控内核关于气球驱动的日志
dmesg -w | grep -i balloon

# 或者使用 journalctl
journalctl -k -f | grep -i balloon

3. 实时监控底层 MemTotal 字段
如果你想看看探针到底读取到了什么原始数据,可以持续刷新 /proc/meminfo。

watch -n 1 'cat /proc/meminfo | head -n 3'

4. 结合 htop / btop 进行图形化观测
运行 htop 或 btop 时,关注界面顶部的内存条。在气球内存环境中,你会看到那个代表“总量”的进度条上限(例如 [||||| 1.4G/14.0G] 中的 14.0G)时不时发生改变,而不仅仅是已使用量在变。



我的主力16C16G 居然没有气球内存🤔

三、CPU测评
CPU:     AMD EPYC 9534 64-Core Processor 步进1 (25代) 32/64-bit × 16颗
           ╚═ 16核心, 16线程, 2449.974MHz, 利用率1%                    
缓存:    L1d 1 MiB, L1i 1 MiB, L2 8 MiB, L3 256 MiB
指令集:   ✔ VT-x/AMD-V    ✔ AES-NI    ✔ AVX2    ✔ BMI1/2    ✔ EPT/NPT 
Sysbench:单线程 4450.57     多线程 69627.93
详细结果:https://browser.geekbench.com/v5/cpu/24361777
四、显卡测评
显卡:    [集显]AMD Cirrus Logic GD 5446 
五、内存测评
内存:    总容量 15.6 GB,  已用 8.7 GB(56%),  可用 6.9 GB(44%)
交换:    总容量 7.4 GB,  已用 0.5 GB(6%),  可用 7.0 GB(94%)
超开指标: ✘ 气球回收     ✘ KSM 复用 
Sysbench:读取 56227.5 MB/s    写入 32060.9 MB/s    延迟 137 ns
Geekbench 5 Score
1430
Single-Core Score
15340
Multi-Core Score

https://nodequality.com/r/hAAxFnrQOYJavCSStmAiUxHF7mPgYGUl