-
Notifications
You must be signed in to change notification settings - Fork 150
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
Reduce variance of perf. CI machine #1450
Comments
Commands to do this: Turbo-boostDisable (apply)$ sudo bash -c "echo 0 > /sys/devices/system/cpu/cpufreq/boost" Enable (revert)$ sudo bash -c "echo 1 > /sys/devices/system/cpu/cpufreq/boost" Hyper-threadingDisable (apply)sudo bash -c "echo off > /sys/devices/system/cpu/smt/control" Enable (revert)sudo bash -c "echo on > /sys/devices/system/cpu/smt/control" |
rust-lang/rust@744e397 will (hopefully) be the last commit benchmarked before I apply the changes here. |
OK, applied:
|
Is ASLR already disabled, at least for the profiled processes? |
I think so. We have kernel.randomize_va_space = 0 globally (which disables kernel ASLR), and we also run processes under set arch -R, which I believe disables ASLR (see
|
Yes, it is disabled kernel-wise and also explicitly in code. |
The experiment with TB and HT turned off has been concluded (I added the results to the issue description). |
Switched hyper-threading on. Last commit benchmarked w/o it is rust-lang/rust@c27948d (on master). |
Hyper-threading off, turboboost on; last commit benchmarked is rust-lang/rust@8be3ce9. |
https://perf.rust-lang.org/compare.html?start=bed4ad65bf7a1cef39e3d66b3670189581b3b073&end=bed4ad65bf7a1cef39e3d66b3670189581b3b073-noisy compares a single commit with "A" being turbo + hyperthreads off, and "B" being turbo and hyperthreads on. We have left the machine with turboboost and hyperthreads both off. I think I managed to make this automatic on boot ( |
Here are some of the experiments the Scala team has run to reduce variance of their CI machine: scala/scala-dev#338 Stopping the Also, by setting the kernel parameter |
Currently, the machine that runs perf. benchmarks on CI uses both turbo-boost and hyper-threading. It would be nice to try to disable these features for some time (e.g. a week or two weeks). We could then observe if disabling them reduces the variance of e.g. wall-time measurements.
Experiment results:
opt
builds and for large crates (e.g.cargo
). CI perf. time decreased only very slightly, to about 1.28 hours.CC @Mark-Simulacrum
The text was updated successfully, but these errors were encountered: