-
Notifications
You must be signed in to change notification settings - Fork 29.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support starting benchmark tasks using taskset on Linux #52233
Comments
FYI: It appears as though the p cores are 2 threads each, and the e cores are only one. This is the output of lscpu on one of the machinees:
So it should just be a matter of |
FWIW A long time ago I did research to see the impact of CPU 0 on Node.js tasks and apparently, it doesn't affect Node.js workload. https://github.com/RafaelGSS/lies-and-benchmark/blob/76a261381ab1fae378bc24ff1853d39e48e8bcde/cpu-0-variation/cpu-http.js#L25 I did a more comprehensive benchmark during that research, but I couldn't find any reference to it in my personal notes. |
I will make a PR for this |
@RafaelGSS the reason why this is needed is to remove variance from the tests, because on new machines there are different types of cores. |
This change enhances the benchmarking tool by conditionally using the `spawn` method with `taskset` for CPU pinning, improving accuracy and consistency of benchmark results across different environments. Fixes: nodejs#52233
This change enhances the benchmarking tool by conditionally using the, spawn method with taskset for CPU pinning, improving consistency of benchmark results across different environments. Fixes: nodejs#52233
This change enhances the benchmarking tool by conditionally using the, spawn method with taskset for CPU pinning, improving consistency of benchmark results across different environments. Fixes: #52233 PR-URL: #52253 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Raz Luvaton <rluvaton@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Enabled inter-process communication (ipc) in the stdio configuration of the spawn function within the benchmark subsystem. This change allows for improved data exchange between parent and benchmarked child processes, addressing limitations in performance testing scenarios. Fixes: nodejs#52233 Refs: nodejs/performance#161
Enabled inter-process communication (ipc) in the stdio configuration of the spawn function within the benchmark subsystem. This change allows for improved data exchange between parent and benchmarked child processes, addressing limitations in performance testing scenarios. Fixes: #52233 Refs: nodejs/performance#161 PR-URL: #52456 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Raz Luvaton <rluvaton@gmail.com>
PR-URL: #52456 Fixes: #52233 Refs: nodejs/performance#161 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Raz Luvaton <rluvaton@gmail.com>
Enabled inter-process communication (ipc) in the stdio configuration of the spawn function within the benchmark subsystem. This change allows for improved data exchange between parent and benchmarked child processes, addressing limitations in performance testing scenarios. Fixes: #52233 Refs: nodejs/performance#161 PR-URL: #52456 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Raz Luvaton <rluvaton@gmail.com>
PR-URL: #52456 Fixes: #52233 Refs: nodejs/performance#161 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Raz Luvaton <rluvaton@gmail.com>
This change enhances the benchmarking tool by conditionally using the, spawn method with taskset for CPU pinning, improving consistency of benchmark results across different environments. Fixes: #52233 PR-URL: #52253 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Raz Luvaton <rluvaton@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Enabled inter-process communication (ipc) in the stdio configuration of the spawn function within the benchmark subsystem. This change allows for improved data exchange between parent and benchmarked child processes, addressing limitations in performance testing scenarios. Fixes: #52233 Refs: nodejs/performance#161 PR-URL: #52456 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Raz Luvaton <rluvaton@gmail.com>
PR-URL: #52456 Fixes: #52233 Refs: nodejs/performance#161 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Raz Luvaton <rluvaton@gmail.com>
This change enhances the benchmarking tool by conditionally using the, spawn method with taskset for CPU pinning, improving consistency of benchmark results across different environments. Fixes: #52233 PR-URL: #52253 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Raz Luvaton <rluvaton@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Enabled inter-process communication (ipc) in the stdio configuration of the spawn function within the benchmark subsystem. This change allows for improved data exchange between parent and benchmarked child processes, addressing limitations in performance testing scenarios. Fixes: #52233 Refs: nodejs/performance#161 PR-URL: #52456 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Raz Luvaton <rluvaton@gmail.com>
PR-URL: #52456 Fixes: #52233 Refs: nodejs/performance#161 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Raz Luvaton <rluvaton@gmail.com>
Our benchmark tasks must be modified to add a
taskset
command to pin the CPU the benchmark will run on. This is needed because now CPUs come with performance cores and energy efficient cores, making it harder to have reliable results otherwise.It's also needed by nodejs/build#3657.
node/benchmark/compare.js
Lines 73 to 75 in af48641
https://github.com/nodejs/node/blob/main/benchmark/run.js#L43-L46
cc @nodejs/performance
The text was updated successfully, but these errors were encountered: