收起左侧

飞牛 OS (Linux 6.12.18−trim) 内核中 Hyper-V 内存气球驱动 (hv_balloon) 功能失效

1
回复
69
查看
[ 复制链接 ]

2

主题

0

回帖

0

牛值

江湖小虾

2025-10-10 19:42:38 显示全部楼层 阅读模式

尊敬的飞牛 OS 开发团队:

我正在使用飞牛 OS 虚拟机作为 NAS 服务,运行于 Hyper-V 主机上。在启用 动态内存 的情况下,发现内存气球驱动 (hv_balloon**) 无法正常工作**,导致宿主机内存资源被长期占用,即使虚拟机处于深度闲置状态,也无法释放内存。

这是一个严重的资源管理问题,请求贵团队核查并修复。

一、环境信息

描述 详细信息
操作系统 (虚拟机) 飞牛 OS (基于 Debian)
内核版本 Linux fnOS6.12.18trim#5 SMP PREEMPT_DYNAMIC
宿主机 (Hyper-V Host) Windows 11 (内存32GB)
Hyper-V 内存设置 动态内存 (Minimum1024MB, Maximum8192MB)
问题核心 hv**_balloon**驱动未能响应宿主机回收请求。

二、问题现象描述

虚拟机长期处于闲置状态(CPU 负载平均低于 0.05),宿主机内存已严重不足(宿主机空闲 RAM 仅剩约 2 GB),但飞牛 OS 虚拟机分配的内存仍然保持在 8192 MB 的上限,从未回收。

为排除文件缓存的干扰,我已设置定时任务,确保系统在闲置时清理缓存,确认虚拟机内部有大量的内存可供回收:

  • 脚本执行结果: 脚本成功将 8 GB 内存中的 6.5 GB 标记为 Free
  • 内存状态:freem 显示 free 内存高达 6500+ MB,buff/cache500+ MB。
  • Hyper-V 状态: 即使在内存 6.5 GB 可回收,且宿主机极度缺内存的情况下,Hyper-V 仍然显示虚拟机占用 8192 MB。

三、关键技术诊断结果

通过命令行诊断,我们排除了驱动未加载或 VMBus 通信失败的问题,故障点明确指向 hv**_balloon 驱动本身**:

  1. 驱动已加载并注册:dmesg 显示 hv**_balloon** 驱动成功注册到 VMBus,并识别了正确的动态内存设置和协议。
    [ 57.553411] hv_vmbus: registering driver hv_balloon
    [ 57.554387] hv_balloon: Using Dynamic Memory protocol version 2.0
    [ 105.652633] hv_balloon: Max. dynamic memory size: 8192 MB
    
  2. 驱动被锁定,无法诊断/重置: 尝试卸载气球驱动失败,表明它被内核认为是“忙碌”的。
    rmmod: ERROR: could not remove module hv_balloon: Device or resource busy
    
  3. 缺少标准接口: 内核没有创建标准的 hv**_balloon** Sysfs 接口,阻碍了进一步诊断或手动干预。
    • /sys/module/hv_balloon/parameters/enable找不到
    • /sys/class/misc/vmbus/mem_balloon/state找不到
    • /dev/vmbus/ 目录下 没有 内存气球相关的控制文件。

四、请求与建议

由于 hv**_balloon** 驱动在关键的 回收逻辑 上失效,请求贵团队:

  1. 核查 6.12.18trim** 内核中 Microsoft LIS (hv**_balloon**) 驱动的实现**,特别是它接收 Hyper-V 主机 MemoryPressure 指令并执行内存回收的逻辑。
  2. 确保 hv**_balloon** 驱动能正确响应宿主机内存压力。

感谢您的时间和支持,期待此问题能够尽快得到修复。

收藏
送赞
分享

107

主题

1万

回帖

0

牛值

管理员

感谢反馈,我们跟进一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则