All Products
Search
Document Center

:Resolve vCPU count mismatch in a Windows instance

Last Updated:May 15, 2026

Problem description

The operating system shows fewer logical processors than the vCPUs specified for the ECS instance type.image

Causes

  • BOOT parameter limitation: A numproc or onecpu parameter in the Windows Boot Configuration Data (BCD) limits the processor count.

  • Hyper-threading is disabled: Threads per Core is set to 1 in the ECS instance configuration, or a registry key has disabled hyper-threading.

Solution

Clear the boot parameter limitation

Remove the boot parameter that limits CPU core count.

  1. Log on to an ECS instance.

    1. Go to ECS console - Instances. In the top-left corner, select the region and resource group for the target instance.

    2. Navigate to the details page of the target instance. Click Connect and select Workbench. Set the connection method to Terminal Connection, enter your username and password, and log on to the graphical terminal.

  2. Clear the BOOT parameter limitation.

    1. Right-click the Start icon icon, click Run, enter powershell, and press Enter.

    2. Query the current boot configuration:

      bcdedit
    3. Check the output for numproc or onecpu. If either exists, delete it. Replace <identifier> with the Windows boot loader identifier from the previous output.

      # Delete the processor count limit
      bcdedit /deletevalue "<identifier>" numproc
      
      # Delete the single-processor mode limit
      bcdedit /deletevalue "<identifier>" onecpu
      If the identifier is {current}, run bcdedit /deletevalue "{current}" numproc and bcdedit /deletevalue "{current}" onecpu as needed.
    4. Restart the instance for the changes to take effect.

Enable hyper-threading

If no boot parameters limit the CPU count, check the hyper-threading configuration.

  1. Stop the instance.

    CPU options can only be changed when the instance is in the Stopped state.

  2. Modify the configuration.

    1. Go to ECS console - Instances.

    2. Click the instance ID to open its details page. In the Configuration Information section, click Change CPU Options.

    3. In the dialog box, verify that Threads per Core is not set to 1. A value of 1 disables hyper-threading.

  3. Start the instance.

    Start the instance and verify the logical processor count.

Fix disabled hyper-threading via the registry

If Threads per Core is not 1, check whether a security policy has disabled hyper-threading. See KB4072698.

  1. Log on to the ECS instance. Right-click the Start icon icon, click Run, and enter regedit to open the Registry Editor.

  2. Navigate to:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

  3. Check for the FeatureSettingsOverride and FeatureSettingsOverrideMask keys. If they exist, set FeatureSettingsOverride to 72 and FeatureSettingsOverrideMask to 3.

  4. Restart the instance for the changes to take effect.