gpt4 book ai didi

mongodb - FIWARE Cygnus 是否有空间使用问题?

转载 作者:行者123 更新时间:2023-12-04 09:05:41 24 4
gpt4 key购买 nike

我正在使用一些 FIWARE 组件(Orion 2.4.0-bext 和 Cygnus 2.3.0)。此外,我使用 mongoDB(版本 3.6)获取当前上下文信息,使用 MySQL(版本 5.7)使用 Cygnus 保存历史更改。所有组件都被docker化,每个组件都在自己的容器中。
在我当前的解决方案中,我收到了大量存储在 mongoDB(通过 Orion)和 MySQL(通过 Cygnus)中的消息(每秒 100 到 500 条)。我发现的问题是

  • Mongo 和 Cygnus 使用了大量的 CPU 能力,即使数据量也不大。
  • Cygnus 在容器使用的磁盘数量上疯狂增长。

  • Cygnus 已配置为在 MySQL 中为每个属性更改存储 1 行。这些是 Cygnus 的 docker-compose 环境变量,用于在 MySQL 中配置映射:
        environment:
    - ...
    - "CYGNUS_LOG_LEVEL=DEBUG" #
    - "CYGNUS_MYSQL_DATA_MODEL=dm-by-entity-type"
    - "CYGNUS_MYSQL_ATTR_NATIVE_TYPES=true"
    - "CYGNUS_MYSQL_ATTR_PERSISTENCE=column"
    为了说明第 2) 点,我将向您展示使用 Cygnus 和 bofere 运行一段时间后有多少空间。
    当我检查使用的磁盘时:
    [root@maaster-docker-test docker]# du -h --max-depth=1
    4.0K    ./trust
    20K ./builder
    11M ./image
    12G ./overlay2
    4.0K ./runtimes
    72K ./buildkit
    100K ./network
    4.0K ./tmp
    807M ./volumes
    4.0K ./swarm
    20K ./plugins
    38G ./containers
    50G .
    我们可以看到容器文件夹使用了 38G 的空间。再检查一点:
    [root@maaster-docker-test containers]# du -h --max-depth=1
    35G     ./dd1c103dd7d1a5ecbab0e3a2e039a6c4d3fd525837a766a9bab28b29ba923a32
    1.4M ./ebf1c3978077a727d414d3e2de5974b03a236999cc66c29f66c0e517d6bbe055
    40K ./2c92baf1368ee292b7cf33db86369d0b6f7941753f54f145a14e5793eac6eba2
    40K ./047c082e1f1e8f26be0bb1a063e93907f55b4736ad88fd29736e383c6e03d559
    175M ./63c715643cfbd7695dc538081e4a963e270dc03a4ffdb528bb375cf57438a477
    152M ./cbb5fe85b16411dc94c8ab00dcd7b40b728acaa422398445be4130aa0197d287
    1.4M ./e7c01dca2246f17c5f0aa9f413772b7b73be2d962ae772e062c5257ce95252fa
    2.6G ./534b92fe6f1dac9f56d59b1e9feeb0d013199d17fae0af1df150dd20b96c9f70
    38G .
    开头的容器dd1c103dd7d1 正在占用 35G 的空间。当我检查这个容器对应于谁时:
    [root@maaster-docker-test containers]# docker ps
    ...
    dd1c103dd7d1 fiware/cygnus-ngsi:latest "/cygnus-entrypoint.…" 2 days ago Up 2 days (healthy) 0.0.0.0:5050-5051->5050-5051/tcp, 0.0.0.0:5080->5080/tcp fiware-cygnus
    ...
    原来那是天鹅座。此时,我已经在 MongoDB 中插入了大约 12000 个不同的实体,反射(reflect)了 MySQL 中大约 300.000 个更改(行)。所以数据量并没有那么疯狂。
    最后,在重新启动 docker-compose 中定义的服务后,这是停止 Cygnus,删除容器并再次启动它们):
    [root@maaster-docker-test containers]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    ...
    0fb5ab78b70b fiware/cygnus-ngsi:latest "/cygnus-entrypoint.…" 3 minutes ago Up 3 minutes (healthy) 0.0.0.0:5050-5051->5050-5051/tcp, 0.0.0.0:5080->5080/tcp fiware-cygnus
    ...
    并再次检查已用空间
    [root@maaster-docker-test containers]# du -h --max-depth=1
    48K ./e8d32c563ad0a22f70a83b576592b32b6336b0b39cc401cfe451896e6b76a897
    40K ./043069752e112cdce051d3792b8a261133b869e939bed263b9e0eb7dc265c379
    80K ./f1f40e29a8d620fc38b7b12cfcd4986f3ffcc2f970f08d582cb826c2f2a41ff0
    1.1M ./0fb5ab78b70bcc856c91b9b99266049b20f05f5d1d6d7d224cdfde9eec47b801
    40K ./047c082e1f1e8f26be0bb1a063e93907f55b4736ad88fd29736e383c6e03d559
    128K ./aa3c63cafe57c6ea1b4ed01bee9415b6a87bf538d6d7a700750be21c738d39d5
    68K ./11388b7090bcd08ac0235129b7354e5c9b68f1d4855abdc97f025ad597b73e68
    68K ./84a6aaf4221fde5cb0e21b727e33e21ff58d275597b121ba22f87296148b38db
    1.6M .
    我们可以看到 Cygnus 使用的容器( 0fb5ab78b70b )只占用了 1.1M 的空间。
    那么,有谁知道 Cygnus、Docker 或在 Docker 环境中运行的 Cygnus 是否存在问题?
    为了提高效率并消耗更少的磁盘空间,我应该在 Cygnus 上执行任何配置更改吗?
    另外,我很想知道是否必须对 mongoDB(或 ORION)进行任何配置更改才能使 mongodb 更有效率?我认为每秒插入约 200 个新实体不应该影响 mongo 进程的 CPU 使用率。
    非常感谢提前

    最佳答案

    我发现配置

    "CYGNUS_LOG_LEVEL=DEBUG" 
    正在生成大量数据,从而降低了服务的性能,增加了磁盘使用量。
    更改该值解决了我的问题。

    关于mongodb - FIWARE Cygnus 是否有空间使用问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63455223/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com