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

问题描述

我正在使用一些FIWARE组件(Orion 2.4.0-bext和Cygnus 2.3.0)。另外,我正在使用mongoDB(版本3.6)获取当前上下文信息,并使用MysqL(版本5.7)使用Cygnus保存历史更改。所有组件都经过docker化,每个组件都放在自己的容器中。

在我当前的解决方案中,我收到许多消息(每秒100到500之间),这些消息存储在mongoDB(通过Orion)和MysqL(通过Cygnus)中。我发现的问题是

  1. Mongo和Cygnus正在使用大量cpu能力,即使数据量并不庞大。
  2. 天鹅座的容器使用的磁盘数量正在疯狂增长。

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"

为说明第二点),我将向您展示之后使用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     .

我们可以看到container文件夹正在使用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个不同的实体,反映了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    .

我们可以看到天鹅座( 0fb5ab78b70b )使用的容器仅占用了1.1M的空间。

那么,有谁知道Cygnus,Docker或在Docker环境中运行的Cygnus是否有问题? 我应该在Cygnus上进行任何配置更改以提高效率并减少磁盘空间吗?

此外,我很高兴知道是否必须对mongoDB(或者也许是ORION)进行任何配置更改,才能使mongodb更加高效?我认为每秒插入200个新实体不会影响mongo进程的cpu使用率。

非常感谢

解决方法

我发现该配置

"CYGNUS_LOG_LEVEL=DEBUG" 

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

改变这种价值解决了我的问题。