【发布时间】:2020-05-27 14:30:27
【问题描述】:
我有几个连接到单个 MongoDB 实例的微服务。微服务在 Nodejs (express + mongoose) 中,所有内容都在 docker-compose 文件中,并使用 Docker-Swarm 进行部署。我需要测量猫鼬模型的 findOne 方法(不是整个 HTTP 请求)的不同部分执行时间。当我测量总执行时间时,有时我什至得到高达 250 毫秒或 400 毫秒的值(系统中的高负载),有时我得到像 10 毫秒或 25 毫秒这样的值。但是当我将explain 与 mongo(在 NodeJS 中)一起使用时,它告诉我查询花费了 0 - 3 毫秒。我怀疑问题出在 docker-swarm 网络上,但我不知道如何测量 400 毫秒是由什么组成的。例如,我想知道开始与 mongo 交谈需要多长时间,反之亦然。
我想我可以使用tcpdump 并查看跟踪及其时间戳(不确定它是否有效)。我想我正在寻找更简单的东西,希望在 Node.js 中。
澄清: 我已经在服务器中测量了许多时间跨度。我目前正在寻找的是:
当我执行await MongooseModel.findOne({name:'vahid'})时,这个请求从节点到mongo需要多少时间(不是在mongo上执行查询的时间)?
【问题讨论】:
标签: node.js mongodb docker mongoose database-performance