You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu蓝牙栈扫描BLE设备时内存/存储占用过高问题如何排查?

调试定位步骤

  • 排查被进程持有未释放的已删除文件:这类文件不会被du统计到,但会计入df的占用,完全匹配你停止扫描后进程释放句柄才会归还空间的特征,执行命令:
    lsof | grep '(deleted)' | grep bluetooth
    
    如果有返回结果,确认是bluetoothd服务持有了未释放的临时文件即可定位根因。
  • 对比扫描前后的目录大小变化:执行sync同步文件系统统计后,用ncdu /分别在扫描启动前、运行5分钟后扫描根目录,重点核对两个路径的大小变化:
    1. /var/log/:系统日志、蓝牙服务日志的默认存储路径
    2. /var/lib/bluetooth/:BlueZ蓝牙栈的设备缓存、配对信息存储路径
  • 检查系统日志写入量:执行journalctl --disk-usage查看journald日志的总占用,开启扫描后再执行一次对比,如果占用增长明显,执行journalctl -f实时观察是否有大量蓝牙相关的调试/报错日志持续输出。

对应解决方案

  • 临时释放空间:不需要等待数小时或者重启整机,直接重启蓝牙服务即可释放被bluetoothd持有的所有缓存、临时文件:
    systemctl restart bluetooth
    
  • 日志过量写入修复:如果确认是journald日志过量占用,先执行journalctl --vacuum-size=100M清理历史日志,再修改/etc/systemd/journald.conf配置,添加/修改以下参数限制日志最大占用:
    SystemMaxUse=100M
    SystemMaxFileSize=20M
    
    保存后执行systemctl restart systemd-journald生效。
  • 蓝牙缓存过量清理:如果是扫描到大量BLE设备导致BlueZ缓存持续增长,不需要保留配对信息的前提下可以直接清空缓存目录:
    systemctl stop bluetooth && rm -rf /var/lib/bluetooth/* && systemctl start bluetooth
    
  • 固件bug修复:Jetson TX2官方提供的4.9内核配套的Intel 8265蓝牙固件存在已知的扫描缓存泄露问题,可下载最新的ibt-12-16.sfi固件文件替换/lib/firmware/下的旧版本,重启设备后生效。

内容的提问来源于stack exchange,提问作者simonsc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:18:03