我希望能在这里找到一些帮助。
在我们的测试环境中,我们使用节点、mongodb、supertest、mocha和mongodb。
我们试图改进我们的mocha测试env以并行运行测试,因为我们的测试用例现在运行了将近5分钟!(600个案例)
例如,我们正在生成4个进程,并并行运行测试。这是非常成功的,但仅仅在linux上。
在我的mac电脑上,测试仍然运行得很慢。似乎不同的进程并不是真正地并行运行。
考试时间:
macosx:
linux:
2011年初:
10.9.2
16 ram内存
核心i7 2,2ghz
物理处理器:1
核心:4
线程:8
linux:
ubuntu
8gb内存
核心i5-2520M 2.5ghz
物理处理器:1
核心:2
线程:4
我的问题是:
谢谢,凯特
发布于 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。
https://stackoverflow.com/questions/24330578
复制相似问题