我正在使用一些FIWARE组件(Orion2.4.0-bext和Cygnus2.3.0)。此外,我使用mongoDB (版本3.6)作为当前上下文信息,使用MySQL (版本5.7)保存历史更改使用Cygnus。所有组件都是被篡改的,每个组件都在自己的容器上。
在我的当前解决方案中,我收到了大量消息(每秒100到500条),这些消息存储在mongoDB (通过Orion)和MySQL (通过Cygnus)中。我发现的问题是
Cygnus已被配置为在MySQL中存储每个属性更改1行。对于MySQL中映射的配置,这些是Cygnus的对接-组合环境变量:
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之后和运行一段时间的空间。
当我检查使用的磁盘时:
[root@maaster-docker-test docker]# du -h --max-depth=14.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=135G ./dd1c103dd7d1a5ecbab0e3a2e039a6c4d3fd525837a766a9bab28b29ba923a32
1.4M ./ebf1c3978077a727d414d3e2de5974b03a236999cc66c29f66c0e517d6bbe055
40K ./2c92baf1368ee292b7cf33db86369d0b6f7941753f54f145a14e5793eac6eba2
40K ./047c082e1f1e8f26be0bb1a063e93907f55b4736ad88fd29736e383c6e03d559
175M ./63c715643cfbd7695dc538081e4a963e270dc03a4ffdb528bb375cf57438a477
152M ./cbb5fe85b16411dc94c8ab00dcd7b40b728acaa422398445be4130aa0197d287
1.4M ./e7c01dca2246f17c5f0aa9f413772b7b73be2d962ae772e062c5257ce95252fa
2.6G ./534b92fe6f1dac9f56d59b1e9feeb0d013199d17fae0af1df150dd20b96c9f70
38G .以dd1c103dd7d1开头的容器占用35克空间。当我检查这个容器与谁对应时:
[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中定义的服务之后,这将停止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),使用的容器只占用了110万的空间。
那么,是否有人知道Cygnus、Docker或Cygnus在Docker环境中是否有问题?我是否应该在Cygnus上执行任何配置更改,以提高效率并减少磁盘空间?
另外,我很高兴知道是否有任何配置更改,我必须做mongoDB (或者猎户座),以使mongodb更有效率?我不认为每秒插入200个新实体不应该影响mongo进程的CPU使用。
提前谢谢
发布于 2020-09-06 16:36:24
我发现这个配置
"CYGNUS_LOG_LEVEL=DEBUG" 产生了大量的数据,降低了服务的性能,增加了磁盘的使用率。
改变这个价值解决了我的问题。
https://stackoverflow.com/questions/63455223
复制相似问题