[Speed] Tune the system the run benchmarks

Victor Stinner victor.stinner at gmail.com
Wed Nov 2 21:30:34 EDT 2016


Hi,

Last months, I used various shell and Python scripts to tune a system
to run benchmarks.

There are many parameters to be set to "fully" configure a Linux:

* Turbo Boost of Intel CPU
* CPU scaling governor
* CPU speed
* Isolate CPU
* Disable kernel RCU on isolated CPUs
* etc.

I added a new "sytem tune" command to the newly released perf 0.8.4. I
implemented many operations:
http://perf.readthedocs.io/en/latest/cli.html#system

Right now, intel_pstate is better supported.

I'm not sure about the CPU scaling governor when intel_pstate is not
used, so this is one is not implemented yet. In my old Python script,
I used the "userland" governor and a fixed speed for the CPUs.

My old Python script also disabled interruptions (IRQ) on isolated
CPUs. I will also implement that later. I don't know if setting the
default CPU mask for IRQ is enough, or if it's better to set the CPU
mask of all invididual IRQs.


Example on the speed.python.org server:
-----
haypo at speed-python$ sudo python3 -m perf system tune
CPU Frequency: Minimum frequency of CPU 1 set to the maximum frequency
CPU Frequency: Minimum frequency of CPU 3 set to the maximum frequency
...
CPU Frequency: Minimum frequency of CPU 23 set to the maximum frequency
Turbo Boost (MSR): Turbo Boost disabled on CPU 0: MSR 0x1a0 set to 0x4000850089
Turbo Boost (MSR): Turbo Boost disabled on CPU 1: MSR 0x1a0 set to 0x4000850089

ASLR: Full randomization
Linux scheduler: Isolated CPUs (12/24): 1,3,5,7,9,11,13,15,17,19,21,23
Linux scheduler: RCU disabled on CPUs (12/24): 1,3,5,7,9,11,13,15,17,19,21,23
CPU Frequency: 0,2,4,6,8,10,12,14,16,18,20,22=min=1600 MHz, max=3333
MHz; 1,3,5,7,9,11,13,15,17,19,21,23=min=3333 MHz, max=3333 MHz
Turbo Boost (MSR): CPU 0-23: disabled
-----

"Reset" the config:
-----
haypo at speed-python$ sudo python3 -m perf system reset
CPU Frequency: Minimum frequency of CPU 1 reset to the minimum frequency
CPU Frequency: Minimum frequency of CPU 3 reset to the minimum frequency
...
CPU Frequency: Minimum frequency of CPU 23 reset to the minimum frequency
Turbo Boost (MSR): Turbo Boost enabled on CPU 0: MSR 0x1a0 set to 0x850089
Turbo Boost (MSR): Turbo Boost enabled on CPU 1: MSR 0x1a0 set to 0x850089

ASLR: Full randomization
Linux scheduler: Isolated CPUs (12/24): 1,3,5,7,9,11,13,15,17,19,21,23
Linux scheduler: RCU disabled on CPUs (12/24): 1,3,5,7,9,11,13,15,17,19,21,23
CPU Frequency: 0-23=min=1600 MHz, max=3333 MHz
Turbo Boost (MSR): CPU 0-23: enabled
-----

Victor


More information about the Speed mailing list