首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在2台不同的机器上运行相同的应用程序时,Arangodb CPU的性能差异

在2台不同的机器上运行相同的应用程序时,Arangodb CPU的性能差异
EN

Stack Overflow用户
提问于 2015-07-14 20:28:04
回答 1查看 455关注 0票数 0

我开发了一个foxx应用程序,它正在机器A上运行。cpu利用率通常低于3-4%,有时达到20%。我有将近600万张唱片。

同一应用程序部署在另一台计算机上(完全复制机器A),数据仅为100 K,但cpu利用率约为200%。

我如何调试这个。机器上正在发生的事情。这两台机器都有相同的应用程序,相同的arangodb版本,相同的配置。磁盘I/O也相同,B机的内存利用率是机器A的1/6。

任何指示。这是在生产环境中发生的,所以对我来说,快速调试它真的很重要。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-17 22:04:16

我们终于能够自己重现这样的问题了。我们发现有一种情况,即调度程序线程可能进入某种繁忙的等待状态,导致重复执行以下循环:

  1. 调用epoll_wait()的调度器线程
  2. epoll_wait()立即返回,为某个文件描述符发送消息
  3. 调用的正确事件处理回调,但不从监视描述符列表中移除文件描述符。
  4. 后藤1

由于没有正确清除监视描述符列表中的一个文件描述符,因此epoll_wait()总是向文件描述符发出一个可用的信号。这使得它几乎立即返回,并且每秒钟执行整个循环多次。这导致了名为scheduler的线程中的CPU峰值。

我们发现其中一个原因是客户端连接超时,而由连接触发的操作仍然在服务器端操作上执行。例如,如果客户端调用服务器路由,该路由需要5秒才能完成和响应,但客户端在3秒后断开连接,则可能发生了这种情况。是什么原因使它很难重现,它并没有影响所有这样的客户关系,但只有一些--哪些还不清楚。

这个特定的问题是在ArangoDB 2.6.5中解决的,所以您可能希望在发布时尝试一下。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31416660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档