S100内存异常占用问题

结论:这是正常现象,不是内存泄漏

根据社区已有解答,S100 的 12G 内存中,默认只有约 9.3G 分配给 CPU 使用,其余内存预留给 BPU、VPU、ISP 等硬件模块,采用 ION 内存管理机制。

你看到的 free -h 显示 5.3G total,可能是:

  1. 系统启动后部分内存已被底层服务占用
  2. 某些硬件模块预分配了内存
  3. 需要检查实际 ION 内存分配情况

排查步骤

:one: 查看 ION 内存分配情况

# 查看 ION 内存池分配
cat /sys/kernel/debug/ion/heaps

# 查看各 heap 的内存使用情况
ls /sys/kernel/debug/ion/

:two: 查看完整内存分布

# 查看内核内存分布
cat /proc/meminfo

# 查看 CMA (Contiguous Memory Allocator) 分配
cat /proc/cma

:three: 使用 Dtop 监控(社区推荐工具)

# 安装 dtop(类似 htop 的 RDK 专用监控工具)
# 参考社区帖子:https://forum.d-robotics.cc/t/topic/31957

# 运行 dtop 查看实时内存占用
dtop

:four: 检查是否有异常进程

# 查看内存占用最高的进程
ps aux --sort=-%mem | head -20

# 查看系统服务状态
systemctl list-units --type=service --state=running

关键信息

项目 说明
S100 总内存 12GB
CPU 可用内存 约 9.3GB(默认分配)
预留内存 约 2.7GB(BPU/VPU/ISP 等)
管理机制 ION 内存管理
升级方案 如需更大内存,考虑 S100P(24GB)

建议

  1. 如果实际可用内存远低于 9.3G,检查是否有异常服务或进程占用
  2. 运行大模型时内存不足,可参考社区方案临时增加 Swap(但会影响性能)
  3. 需要更多内存,考虑升级到 S100P 平台

相关社区资源

建议你在本帖补充 cat /sys/kernel/debug/ion/heaps 的输出,方便社区进一步帮你分析具体是哪些模块占用了内存。