簡體   English   中英

Node.js子進程分叉:CPU親和力

[英]Node.js child process fork: CPU affinity

我想在Node.js中使用child_process.fork函數來生成一個新進程。 此示例還可以使用spawn函數。

為了確保這些子進程均勻地利用計算機上的所有內核,我想設置它們的CPU親和力,從而迫使它們遷移到所需的內核。

我知道如何在C和終端中執行此操作,但是如何在Node.js中執行此操作?

首先,我說設置進程的處理器親和力可能不是一個好主意。 每個節點進程都有許多線程(JS運行的主要V8線程以及用於執行I / O和其他本機操作的libuv線程),並且將節點進程限制為單個內核必然會減慢速度。

不執行任何操作並讓OS調度程序處理您的分叉進程及其線程可能會產生更好的性能。

當然,真正了解的唯一方法是對負載下的系統進行基准測試。 測試不同級別的負載(輕,中,高),看看性能如何。


我可以想到兩種設置進程關聯性的方法:

  1. 丑陋:使用exec()運行taskset集以設置您的進程的親和力。 (對當前進程使用process.pid ,或者從fork()返回的ChildProcesspid屬性使用。)

  2. 更好的方法:編寫與平台API的本機綁定。 (你會怎么做的在C) 該模塊會出現這樣做; 是舊的,所以它可能會或可能無法正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM