Mongodb FIWARE Cygnus在空间使用方面有什么问题吗?

Mongodb FIWARE Cygnus在空间使用方面有什么问题吗?,mongodb,docker,docker-compose,fiware,fiware-cygnus,Mongodb,Docker,Docker Compose,Fiware,Fiware Cygnus,我正在使用一些固件组件(Orion 2.4.0-bext和Cygnus 2.3.0)。另外,我使用mongoDB(版本3.6)获取当前上下文信息,使用Cygnus保存历史更改的MySQL(版本5.7)。所有组件都是固定的,每个组件都位于自己的容器中 在我当前的解决方案中,我接收到大量消息(每秒100到500条),这些消息存储在mongoDB(通过Orion)和MySQL(通过Cygnus)中。我发现的问题是 Mongo和Cygnus使用了大量的CPU资源,即使数据量不大 天鹅座正在疯狂地增加容器

我正在使用一些固件组件(Orion 2.4.0-bext和Cygnus 2.3.0)。另外,我使用mongoDB(版本3.6)获取当前上下文信息,使用Cygnus保存历史更改的MySQL(版本5.7)。所有组件都是固定的,每个组件都位于自己的容器中

在我当前的解决方案中,我接收到大量消息(每秒100到500条),这些消息存储在mongoDB(通过Orion)和MySQL(通过Cygnus)中。我发现的问题是

  • Mongo和Cygnus使用了大量的CPU资源,即使数据量不大
  • 天鹅座正在疯狂地增加容器使用的磁盘数量
  • Cygnus已配置为在MySQL中每更改一个属性存储一行。以下是Cygnus关于MySQL中映射配置的docker compose环境变量:

        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运行一段时间后,使用Cygnus的空间有多大

    当我检查使用的磁盘时:

    [root@maaster-docker-test docker]# du -h --max-depth=1
    
    我们可以看到containers文件夹使用了38G的空间。再检查一下:

    [root@maaster-docker-test containers]# du -h --max-depth=1
    
    以dd1c103dd7d1开头的容器占用了35G的空间。当我检查此容器与谁对应时:

    [root@maaster-docker-test containers]# docker ps
    
    原来是天鹅座。此时,我已经在MongoDB中插入了大约12000个不同的实体,反映了MySQL中大约300000个更改(行)。所以数据量并没有那么疯狂

    要完成,在重新启动docker compose中定义的服务后,这将停止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    .
    
    我们可以看到天鹅座使用的容器(0fb5ab78b70b)只占用了1.1M的空间

    那么,有人知道Cygnus、Docker或Cygnus在Docker环境中运行是否存在问题吗? 我是否应该对Cygnus执行任何配置更改以提高效率并减少磁盘空间消耗

    另外,我很想知道,为了使mongoDB更高效,我是否必须对mongoDB(或者ORION)进行任何配置更改?我不认为每秒插入约200个新实体不会影响mongo进程的CPU使用率


    提前非常感谢

    我发现配置

    "CYGNUS_LOG_LEVEL=DEBUG" 
    
    正在生成大量数据,这降低了服务的性能,增加了磁盘使用率

    改变这个值解决了我的问题

    ...
    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
    ...
    
    [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_LOG_LEVEL=DEBUG"