首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Node.js (Mac )的性能问题-进程

Node.js (Mac )的性能问题-进程
EN

Stack Overflow用户
提问于 2014-06-20 15:19:45
回答 1查看 1.8K关注 0票数 4

我希望能在这里找到一些帮助。

在我们的测试环境中,我们使用节点、mongodb、supertest、mocha和mongodb。

我们试图改进我们的mocha测试env以并行运行测试,因为我们的测试用例现在运行了将近5分钟!(600个案例)

例如,我们正在生成4个进程,并并行运行测试。这是非常成功的,但仅仅在linux上。

在我的mac电脑上,测试仍然运行得很慢。似乎不同的进程并不是真正地并行运行。

考试时间:

macosx:

  • 并行运行9个测试: 37s
  • 不并行地运行9个测试:41

linux:

  • 并行运行9个测试: 16s
  • 不并行地运行9个测试: 25s

2011年初:

10.9.2

16 ram内存

核心i7 2,2ghz

物理处理器:1

核心:4

线程:8

linux:

ubuntu

8gb内存

核心i5-2520M 2.5ghz

物理处理器:1

核心:2

线程:4

我的问题是:

  1. 有没有改进macosx上的工艺性能的建议?(除ulimit外,launchctl (maxfiles)?)
  2. 为什么测试在linux上运行得更快?

谢谢,凯特

EN

回答 1

Stack Overflow用户

发布于 2014-06-20 17:08:12

我在这里复制了我的评论,因为它描述了大部分的答案。

考虑到机器的规格,我怀疑额外的8G内存,以及处理能力对事情的影响很大,特别是给定节点的单进程模型,而且您只启动了4个进程。对于8 ghz、2.5GHz和4个线程的linux机器,我完全怀疑它是一个瓶颈。因此,我实际上希望处理器运行您的测试所花费的时间对这两台机器来说大致相等。如果您运行的是mongo,我会对您的磁盘I/O性能更感兴趣。您的磁盘I/O最有可能减慢速度。那里的规格是什么?

您的规格: macosx:东芝5400 rpm 8MB linux: Seagate 7200 rpm 16 8MB

您的Linux驱动器比mac驱动器快1.33倍,缓存也大得多。对于基于数据库的应用程序,硬盘驱动器的性能至关重要。在您的应用程序中花费的大部分时间将等待I/O,特别是在节点单进程工作方法中。我认为这是造成90%性能差异的罪魁祸首,并将其归因于linux在后台可能没有那么多垃圾,从而进一步加剧了Mac磁盘驱动器的性能问题。

此外,启动多个节点进程不太可能对此有所帮助。由于处理器时间不是您的瓶颈,启动过多的进程只会减慢您的磁盘速度。另一个证明这是问题的证据是,linux上的多个进程的性能要比mac上的多个进程的性能要好。1进程几乎使您的5400驱动器的性能最大化,因此您看不到运行多个进程会显着地提高性能。而多个linux进程使用磁盘来充分发挥潜力。如果要启动更多的进程,您可能会看到linux操作系统上的回报正在减少,当然,除非您要升级到SSD。

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

https://stackoverflow.com/questions/24330578

复制
相关文章

相似问题

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