Microservices Foxx microservice中的查询速度较慢

Microservices Foxx microservice中的查询速度较慢,microservices,arangodb,foxx,Microservices,Arangodb,Foxx,我们注意到,当我们将AQL查询从ArangoDB自己的RESTAPI移动到定制的Foxx微服务时,性能会显著下降。这是意料之中的事吗 例如,如果我们从远程计算机运行多线程负载测试,通过_api/cursor REST端点请求800000文档集合中的文档计数(“返回长度(MyCollection)”),我们每秒可以处理大约6500个请求。如果我们调用自己的微服务返回db.\u query('LENGTH(MyCollection)),我们每秒只能处理大约2000个请求,吞吐量减少69%。(对于进行

我们注意到,当我们将AQL查询从ArangoDB自己的RESTAPI移动到定制的Foxx微服务时,性能会显著下降。这是意料之中的事吗

例如,如果我们从远程计算机运行多线程负载测试,通过_api/cursor REST端点请求800000文档集合中的文档计数(“返回长度(MyCollection)”),我们每秒可以处理大约6500个请求。如果我们调用自己的微服务返回db.\u query('LENGTH(MyCollection)),我们每秒只能处理大约2000个请求,吞吐量减少69%。(对于进行路径遍历的更复杂的查询,我们得到了32%的减少,而对于涉及地理空间索引的查询,则减少了60%。)

我们不确定是什么导致了这种退化。如有任何见解,将不胜感激


谢谢

配置了多少V8上下文?另外,将您在Foxx中定义的连接设置/拆卸与您自己的REST API端点进行比较。有时,使用Foxx端点执行的有效负载/参数验证要比在独立restapi中执行的有效负载/参数验证多得多。您是否已将这两项服务缩减到基本内容,并比较了它们的速度?另外,在测试定制RESTAPI时,它与ArangoDB在同一台服务器上运行?还是在第二台服务器上运行?自定义RESTAPI缓存数据了吗?David,我提到的RESTAPI是由ArangoDB实现的。看起来像。我们还没有实现自己的RESTAPI。是的,我们在RESTAPI调用和Foxx微服务中都使用了基本代码。在每种情况下,它只是返回一个集合中文档数的一行代码。CoDEmanX,感谢您对V8上下文的建议。根据CoDEmanX的建议,我们将javascript.v8-contexts-minimum和javascript.v8-contexts都设置为4。这提高了我们的Foxx微服务的性能:我前面提到的吞吐量下降了69%,现在下降了48%。将V8参数从4增加到8并没有进一步改善。