代码之家  ›  专栏  ›  技术社区  ›  JoseBenitez

物联网代理LWM2M内存耗尽和生产环境

  •  4
  • JoseBenitez  · 技术社区  · 7 年前

    我正在做一个项目,目标是将超过1k的设备连接到一台机器上,这台机器可能会自动缩放。问题是,只有两个连接的设备,IDAS IoTAgent在几天后以“内存耗尽”消息结束。 它在AWS m3.medium中具有内存交换的机器中的docker实例中运行。

    这是一种可推荐的生产通用启用码吗?是否对大量连接的设备进行了测试?这真的是维修费吗?

    这是git回购的url:

    https://github.com/telefonicaid/lightweightm2m-iotagent

    提前感谢

    1 回复  |  直到 7 年前
        1
  •  2
  •   Fernando Méndez Requena    7 年前

    很抱歉耽误了您的时间,非常感谢您对Fiware的兴趣,并将此问题提请我们注意。让我逐一回答你的问题:

    配置.js IotAgent LWM2M。

    https://github.com/Fiware/iot.IoTagent-LWM2M/blob/master/docs/deviceProvisioning.md

    有效负载格式不正确,返回以下错误:

    **op=IoTAgentNGSI.DbConn | msg=No host found for MongoDB driver.**
    

    要解决这个问题,必须在负载中创建一个名为“devicedRegistry”的属性 配置.js

    var config = {};
    config.lwm2m = {
    logLevel: 'DEBUG',
    port: 5684,
    defaultType: 'Device',
    ipProtocol: 'udp4',
    serverProtocol: 'udp4
    delayedObservationTimeout: 50,
    formats: [
        {
            name: 'application-vnd-oma-lwm2m/text',
            value: 1541
        },
        {
            name: 'application-vnd-oma-lwm2m/tlv',
            value: 1542
        },
        {
            name: 'application-vnd-oma-lwm2m/json',
            value: 1543
        },
        {
            name: 'application-vnd-oma-lwm2m/opaque',
            value: 1544
        }
      ],
    writeFormat: 'application-vnd-oma-lwm2m/text',
    types: [ ]
    };
    config.ngsi = {
       logLevel: 'DEBUG',
       contextBroker: {
          host: 'localhost',
          port: '1026'
    },
    server: {
        port: 4041,
        host: 'localhost'
    },
    deviceRegistry: {
        type: 'mongodb'
    },
    mongodb: {
        host:'172.17.0.2',
        db: 'iotagentLW2M2M'
    },
    types: { },
    service: 'smartGondor',
    subservice: '/gardens',
    providerUrl: 'http://localhost:4041',
    deviceRegistrationDuration: 'P1M'
    };
    module.exports = config;
    

    请记住,当LWM2M客户端具有活动属性时,代理会在客户端注册之后为每个属性发送一条观察指令。当客户端花费太长时间开始侦听时,这可能会导致错误,因为观察请求可能无法到达其目的地。

    其次 ? 绝对是的。它已经针对大量连接的设备进行了测试。 我们对您的情况感到有点惊讶,事实上,我们通过我们的质量保证团队得到的是,他们评估,物联网代理每秒能够管理多达140个更新,即来自设备的140个请求。我们没有设备的数量,因为这些更新可能来自一个或多个设备。对于100个并发线程,它平均每秒能够管理114个更新。如果我们增加并发线程的数量,每秒140次更新将是上限。我希望这能给你一个参考数字。 只要告诉我们你的要求,我们会回来给你更多的信息。

    最后 这真的是维修费吗?
    是要有一个新版本的物联网代理完全符合 FIWARE NGSI v2 FIWARE NGSI v1 .

    此外,新的增强功能将很快出现。正如你可能知道的那样,Fiware技术的所有开发都是由Fiware开源社区完成的,作为任何开源社区,我们都致力于修复漏洞(如果有),并提供增强功能,但这取决于社区成员的优先权。

    只要让我们知道这是否解决了您的问题,我们希望以上所有内容都能帮助您解决问题,并理解这件事。为像你这样的人服务是我们的使命!