-3

I've got a bunch of EC2 instances - I want to disable a CPU feature on one of them (i.e. turbo boost on CPU).

is this possible to do?

I assume I need BIOS access but I can't see anything about it online.

Amazon don't provide 'technical' support for 'basic' plans.

Any ideas?

If I could even do it at OS level it would be good (Windows Server 2012).

EEAA
  • 109,363
  • 18
  • 175
  • 245
Woodstock
  • 103
  • 1
  • 1
  • 11

2 Answers2

2

According to everything I've read, including this page on AWS documentation, no you can't. If you want that level of control you need a dedicated server. Even if you have a dedicated server in AWS you won't get BIOS access, you'll probably need to buy a physical server.

Why do you even want this? It helps performance.

Tim
  • 31,888
  • 7
  • 52
  • 78
  • 3
    It'll be slower without turbo boost :) – Tim Feb 15 '16 at 19:43
  • I'm aware, we have performance SLAs to hit for computational tasks and I need to know the real world impact of TB. – Woodstock Feb 16 '16 at 07:05
  • Unfortunately you'll need to test it on another type of server. I think even i5 / i7 CPUs have it, that might give you some idea, though Amazon's processors are modified for them by Intel so they could be different. – Tim Feb 16 '16 at 07:09
  • Avoiding CPU frequency scaling and limiting how "deep" of a sleep state an idle core may go into can produce a more stable performance, even if at a lower baseline level. This is more important to some applications than extracting the maximum burst performance. Benchmarks are a good use case where you probably want to take control of this. – Pavel Apr 18 '16 at 05:28
  • @Pavel is a CPU core really likely to go to sleep in a virtualised system, with many operating systems servicing many users? – Tim Apr 18 '16 at 07:29
1

Yes, this is possible, but currently only with the largest instances of some the newest families using the Intel Xeon E5-2666 v3:

  • c4.8xlarge
  • d2.8xlarge
  • m4.10xlarge

The EC2 documentation provides examples of how to do this on Linux. Basically it boils down to limiting the maximum sleep state to C1:

kernel /boot/vmlinuz-... [...] intel_idle.max_cstate=1

And requesting no boosted P-states after boot:

sudo sh -c "echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo"

For more details see Processor State Control, particularly the "Baseline Performance with the Lowest Variability" section. On Windows, you might be able to do this via Power Options as outlined in this SuperUser answer although that references a consumer version of Windows.

Pavel
  • 126
  • 4