【问题标题】:Google Cloud IoT Gateway Connection Out Of MemoryGoogle Cloud IoT Gateway 连接内存不足
【发布时间】:2019-01-12 07:53:52
【问题描述】:

我成功地将 Raspberry Pi 连接到 Cloud IoT,并且能够轻松切换设备。但过了一会儿,据我说,设备连接超时,并显示“('on_disconnect','1:内存不足。')”并且连接状态设置为False。所以我重新安装了 git 包(社区文件夹)并重复了相同的步骤,我又成功了。但是,显然,一段时间后出现了同样的错误。我似乎无法将其缩小到导致问题的原因。我是新来的,所以如果我应该添加更多信息,请告诉我。

编辑:由于我试图缩小范围,我发现在出现上述问题时重新运行“export GOOGLE_CLOUD_PROJECT=your-project-id-123”命令,帮助我正确建立连接(无需更改任何事物)。虽然这并不能阻止“内存不足”问题,但现在可以解决这个问题。

编辑:https://github.com/GoogleCloudPlatform/community/tree/master/tutorials/cloud-iot-gateways-rpi 链接到文件夹

【问题讨论】:

  • 这听起来像是内存泄漏,分配的资源没有被释放,并且在足够的循环之后,这些未释放的分配占用了所有可用的内存。但是如果您的问题中不存在有问题的代码,这更像是一个最终用户问题,在这里会偏离主题,而不是 SO 社区可以帮助您调试的主题程序错误.
  • 如果有人仍然面临这个问题,原因可能是与 Google IoT 网关的重复连接对象。由于物联网网关限制每台设备一个连接,因此出现了内存不足的问题。尽管错误标题或描述会导致不同的想法,例如内存泄漏问题,但这是相同的根本原因。

标签: python memory cloud mqtt iot


【解决方案1】:

对于任何来这里尝试MQTT example的人

我的问题是我只是忘记在 CLI 示例中正确设置 --project 标志,它将项目名称解析为 None,这显然在上游给出了这个神秘的错误。因此,您可能需要检查您的项目是否设置正确。顺便说一句,区域也是如此,这可能会导致连接被拒绝。

【讨论】:

    【解决方案2】:

    我帮助这个问题的作者在另一个平台上解决了这个问题,但我正在重新发布解决方案以供参考。

    问题在于,在 OP 所遵循的教程中生成的 JWT 在大约一个小时后过期,并且不包含在过期后刷新令牌的代码。有关创建和刷新 JWT 的更多信息,请参阅here

    edit:根据要求,添加代码 sn-p 用于刷新 jwts。在这种情况下,get_client 创建 MQTT 连接,该连接也处理创建 JWT。这假设 JWT 在 60 分钟后过期,但在 Cloud IoT Core 中,JWT 的有效期可以长达 24 小时。

    seconds_since_issue = (datetime.datetime.utcnow() - jwt_iat).seconds
    if seconds_since_issue > 60 * jwt_exp_mins:
        print('Refreshing token after {}s').format(seconds_since_issue)
        jwt_iat = datetime.datetime.utcnow()
        client = get_client(
            args.project_id, args.cloud_region,
            args.registry_id, args.device_id, args.private_key_file,
            args.algorithm, args.ca_certs, args.mqtt_bridge_hostname,
            args.mqtt_bridge_port)
    

    【讨论】:

    • 请将更多答案复制到此处(例如,用于刷新令牌的代码 sn-p),因为目前这基本上是一个仅链接的答案,如果链接中断,它将无用跨度>
    • 我正在刷新 JWT 令牌,正如您在此处提到的那样,但我有时会遇到“内存不足”问题。我相信这是别的东西,比如内存泄漏?知道为什么仍然会发生这种情况吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 2018-10-15
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2019-03-15
    相关资源
    最近更新 更多