VMware Cloud Community
ganapa2000
Hot Shot
Hot Shot
Jump to solution

Set Hyper Threading on ESXi

Hi,

I would like to enable and set the hyper threading on the server. basically, I want to update the parameters as below on all the hosts. how can i do it. please help.

Get-VMHost | Select Name,HyperthreadingActive,
@{N = 'UserVars.SuppressHyperthreadWarning'; E = { (Get-AdvancedSetting -Entity $_ -Name 'UserVars.SuppressHyperthreadWarning').Value } },
@{N = 'VMkernel.Boot.hyperthreading'; E = { (Get-AdvancedSetting -Entity $_ -Name 'VMkernel.Boot.hyperthreading').Value } },
@{N = 'VMkernel.Boot.HyperthreadingMitigation'; E = { (Get-AdvancedSetting -Entity $_ -Name 'VMkernel.Boot.HyperthreadingMitigation').Value } }

Reply
0 Kudos
1 Solution

Accepted Solutions
LucD
Leadership
Leadership
Jump to solution

When it is active in the BIOS, you have to configure the advanced setting VMkernel.Boot.hyperthreading

Get-VMHost |
ForEach-Object -Process {
  Get-AdvancedSetting -Entity $_ -Name 'UserVars.SuppressHyperthreadWarning' | Set-AdvancedSetting -Value 0 -Confirm:$false
  Get-AdvancedSetting -Entity $_ -Name 'VMkernel.Boot.hyperthreading' | Set-AdvancedSetting -Value $true -Confirm:$false
  Get-AdvancedSetting -Entity $_ -Name 'VMkernel.Boot.HyperthreadingMitigation' | Set-AdvancedSetting -Value $false -Confirm:$false
}

 


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

View solution in original post

Reply
0 Kudos
4 Replies
LucD
Leadership
Leadership
Jump to solution

You enable HT in the BIOS.
So unless you have a PS module to interact with the BIOS, that can not be done from PS.

The other 3 settings can be done via Set-AdvancedSetting


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

Reply
0 Kudos
ganapa2000
Hot Shot
Hot Shot
Jump to solution

Yes, LucD. I have enabled the HT in the BIOS. now how do I need to set from ESXi end ?

Reply
0 Kudos
LucD
Leadership
Leadership
Jump to solution

When it is active in the BIOS, you have to configure the advanced setting VMkernel.Boot.hyperthreading

Get-VMHost |
ForEach-Object -Process {
  Get-AdvancedSetting -Entity $_ -Name 'UserVars.SuppressHyperthreadWarning' | Set-AdvancedSetting -Value 0 -Confirm:$false
  Get-AdvancedSetting -Entity $_ -Name 'VMkernel.Boot.hyperthreading' | Set-AdvancedSetting -Value $true -Confirm:$false
  Get-AdvancedSetting -Entity $_ -Name 'VMkernel.Boot.HyperthreadingMitigation' | Set-AdvancedSetting -Value $false -Confirm:$false
}

 


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

Reply
0 Kudos
ganapa2000
Hot Shot
Hot Shot
Jump to solution

Thank you very much LucD, that worked 🙂

Reply
0 Kudos