结论:这是正常现象,不是内存泄漏
根据社区已有解答,S100 的 12G 内存中,默认只有约 9.3G 分配给 CPU 使用,其余内存预留给 BPU、VPU、ISP 等硬件模块,采用 ION 内存管理机制。
你看到的 free -h 显示 5.3G total,可能是:
- 系统启动后部分内存已被底层服务占用
- 某些硬件模块预分配了内存
- 需要检查实际 ION 内存分配情况
排查步骤
查看 ION 内存分配情况
# 查看 ION 内存池分配
cat /sys/kernel/debug/ion/heaps
# 查看各 heap 的内存使用情况
ls /sys/kernel/debug/ion/
查看完整内存分布
# 查看内核内存分布
cat /proc/meminfo
# 查看 CMA (Contiguous Memory Allocator) 分配
cat /proc/cma
使用 Dtop 监控(社区推荐工具)
# 安装 dtop(类似 htop 的 RDK 专用监控工具)
# 参考社区帖子:https://forum.d-robotics.cc/t/topic/31957
# 运行 dtop 查看实时内存占用
dtop
检查是否有异常进程
# 查看内存占用最高的进程
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) |
建议
- 如果实际可用内存远低于 9.3G,检查是否有异常服务或进程占用
- 运行大模型时内存不足,可参考社区方案临时增加 Swap(但会影响性能)
- 需要更多内存,考虑升级到 S100P 平台
相关社区资源
建议你在本帖补充 cat /sys/kernel/debug/ion/heaps 的输出,方便社区进一步帮你分析具体是哪些模块占用了内存。