天鹅座FIWARE在空间使用方面有问题吗



我使用了一些FIWARE组件(Orion 2.4.0-bext和Cygnus 2.3.0(。此外,我使用mongoDB(3.6版(获取当前上下文信息,使用MySQL(5.7版(保存Cygnus的历史更改。所有组件都经过码头化处理,每个组件都在自己的容器上。

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

  1. Mongo和Cygnus使用了大量的CPU能力,即使数据量也不算巨大
  2. 容器使用的磁盘数量正在疯狂地增长

Cygnus已配置为在MySQL中每个属性更改存储1行。以下是关于MySQL中映射配置的Cygnus的docker组合环境变量:

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(点,我将向您展示天鹅座运行一段时间后使用了多少空间。

当我检查使用的磁盘时:

[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个不同的实体,反映了MySQL中大约300000个更改(行(。因此,数据量并没有那么疯狂。

最后,在重新启动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的效率,我是否必须对mongoDB(或者ORION(进行任何配置更改?我认为每秒插入约200个新实体不应该影响mongo进程的CPU使用。

提前感谢

我发现配置

"CYGNUS_LOG_LEVEL=DEBUG" 

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

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

最新更新