【问题标题】:Node worker_threads + cluster + affinity节点 worker_threads + 集群 + 亲和性
【发布时间】:2018-08-08 15:23:57
【问题描述】:

我刚刚发现了 Node.js 的 worker_threads 模块,它看起来很有前途!

问题:将worker_threads与集群结合起来是否有趣/高效,或者创建的线程是否自动分布在机器的不同CPU上?在这种情况下,有没有办法知道线程的亲和性?

【问题讨论】:

    标签: node.js multithreading cluster-computing worker affinity


    【解决方案1】:

    我一直在测试(在设置了多个 CPU 的 Vagrant 上)。 我使用top 来监控多个线程运行时的 cpu 使用率(如果百分比高于 100%,则意味着使用了多个 CPU/内核。

    结果:
    CPU:4,工作线程:否,集群:否,最大 %CPU 122
    CPU:4,工作线程:否,集群:是,最大 %CPU 115 + 105(两个进程)
    CPU:4,工作线程:是,集群:否,最大 %CPU 257(用于 2 个线程)
    CPU:4,工作线程:YES,集群:YES,最大 %CPU 122 + 127(对于 2 个进程中的 2 个线程)

    从这些测试中,我得出结论,线程在可用时会利用多个 CPU/内核。所以使用集群并不会提高工作线程的性能。

    【讨论】:

      【解决方案2】:

      我在文档中没有遇到任何提及亲和力的内容 - 我的假设是这是另一个操作系统级别的线程,操作系统的调度程序将负责它运行在哪个 proc 上。

      【讨论】:

        猜你喜欢
        • 2018-01-17
        • 1970-01-01
        • 1970-01-01
        • 2018-05-28
        • 2013-04-24
        • 1970-01-01
        • 1970-01-01
        • 2017-06-03
        • 1970-01-01
        相关资源
        最近更新 更多