Blog

How to Reduce Fan Noise on a PC / Laptop Running Windows 10

, John Comber

Introduction

The fan in a PC / laptop is used to cool the machine when it’s in a hot environment and / or when it’s running intensive process(es) that cause the processor and other components to heat up. The fan will run faster (and therefore generate more noise) the higher the internal temperature of the machine.

The simplest (and non-technical) solutions to allow the machine to disperse heat efficiently is to ensure that:

  • the PC / laptop has sufficient airflow around it. If you’re using a laptop on your lap then try to raise it off your legs.
  • the intake / exhaust vents on the machine are clear of dust.

If there is sufficient airflow around the machine and the vents are clear but the fan is still making a lot of noise then try the methods below.

Caveats

The fan is used to cool the machine when it’s under high load. There is a trade-off between fan noise and the performance of the machine.

The methods described below will affect the performance of the machine. Seek the help of an experienced PC admin person if you’re at all unsure about implementing (and, if necessary, reversing) any of these changes to your machine’s performance.

Background

I work as a software engineer so, during daily use, I use my laptop to run multiple applications, virtual machines and Docker containers at once. My existing laptop was starting to creak at the seams. To give it credit it was five years’ old and had provided good service during that time, however, the time had come to upgrade.

I spent time researching the latest models and subsequently purchased a new, relatively high-specification (for 2021), laptop with an 11th generation Intel Core i7 processor and 16GB of RAM. Hopefully, all the performance I’d need for the next few years.

I was looking forward to getting the machine set-up and starting to use it. It arrived the next day. However, after my initial excitement of receiving a new shiny-thing I was really disappointed with how noisy the fan was when running under any kind of load. Buyer’s remorse set in.

Other than the fan noise it was a great machine. Rather than go through the trouble of returning it and then having to repeat the same process of researching, buying and potentially experiencing the same issue with another machine I set out to try to find a fix. The research from this is described below.

Options to Reduce the Fan Noise

There are two options to reduce the fan noise. Both involve limiting the performance of the processor to stop it getting so hot that it requires the fan to run at high speed.

If you’re lucky, your PC / laptop manufacturer hasn’t hidden the settings for adjusting the processor performance and you’ll be able to change these via the Windows 10 UI. The settings can be found in: Power Options > Change Plan Settings > Change Advanced Power Settings.

There is a method to get the Windows 10 UI to show these settings. I may write post about it another day. If you’re interested in learning how to do this then search online for:

'Windows 10 power config show hidden settings'

The methods below use the Windows 10 Command Line Interface.

Option 1 – Configure the Maximum Processor Performance Setting

This is my preferred solution as it doesn’t significantly reduce the performance of the machine. However, there is still some fan noise. I’ve accepted it and got used to it.

This solution reduces the maximum percentage of processor performance that the machine will use. The default will / should be 100% (64 in hexadecimal). Even just reducing this a few percent should reduce the fan noise a little. Experiment by decrementing the value until you find the sweet spot (performance reduction vs. fan noise) that you’re happy to accept.

  1. Open a Windows 10 command window as an administrator:
    • Press the start key / button.
    • Type 'cmd' but don’t press enter.
    • Right click on the Command Prompt program and select Run as Administrator.
    • A command window will open.
  2. In the command window type:
    powercfg /q SCHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX

This will list the current settings for the maximum percentage of processor power to use. If you’re using a machine with battery (i.e. a laptop) then two values (AC – plugged in, DC – running on battery) will be listed (note: the GUIDs on your machine will be different):

    Power Scheme GUID: 1a0d3e80-1107-43e9-98c8-675510850919 (Balanced)
    GUID Alias: SCHEME_BALANCED
    Subgroup GUID: 635445af-8ae5-4f53-9df8-8bc5df16ef1c (Processor power management)
    GUID Alias: SUB_PROCESSOR
    Power Setting GUID: 6546c04c-e0b0-4c3a-ba4e-cb66d5c6eae1 (Maximum processor state)
    GUID Alias: PROCTHROTTLEMAX
    Minimum Possible Setting: 0x00000000
    Maximum Possible Setting: 0x00000064
    Possible Settings increment: 0x00000001
    Possible Settings units: %
    Current AC Power Setting Index: 0x00000064
    Current DC Power Setting Index: 0x00000064

To change the AC (running on mains power) value type the following into the command window (this changes the maximum processor performance to 98% of it’s capacity). Replace the 98 shown below with whatever value you want to try. Keep the value as high as possible to retain as much performance as possible.

    powercfg /setacvalueindex SCHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX 98

Similarly, you can change the DC (running on battery) value. Again replace the 98 below with whatever value you want to try.

    powercfg /setdcvalueindex SCHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX 98

If you want to revert to 100% performance then run the same commands but substitute the 98 with 100.

You can check that the changes have been applied by running the command in Step 2 again.

Option 2 – Configure the Machine to Automatically Vary the Processor Performance to Limit the Processor Temperature

This is the more aggressive option. The fan noise should be significantly reduced but the performance of the machine will also be significantly reduced.

  1. Open a Windows 10 command window as an administrator:
    • Press the start key / button.
    • Type 'cmd' but don’t press enter.
    • Right click on the Command Prompt program and select Run as Administrator.
    • A command window will open.
  2. In the command window type:
    powercfg /q SCHEME_CURRENT SUB_PROCESSOR SYSCOOLPOL

This will list the current settings for the system cooling policy. If you’re using a machine with battery (i.e. a laptop) then two values (AC – plugged in, DC – running on battery) will be listed (note: the GUIDs on your machine will be different):

    Power Scheme GUID: 1a0d3e80-1107-43e9-98c8-675510850919 (Balanced)
    GUID Alias: SCHEME_BALANCED
    Subgroup GUID: 635445af-8ae5-4f53-9df8-8bc5df16ef1c (Processor power management)
    GUID Alias: SUB_PROCESSOR
    Power Setting GUID: bf0a4f91-0fda-4dc7-af66-a0ad519d530c (System cooling policy)
    GUID Alias: SYSCOOLPOL
    Possible Setting Index: 000
    Possible Setting Friendly Name: Passive
    Possible Setting Index: 001
    Possible Setting Friendly Name: Active
    Current AC Power Setting Index: 0x00000001
    Current DC Power Setting Index: 0x00000000

There are two options (000 – Passive and 001 – Active) as described in the output above. The Passive option automatically reduces the processor performance to limit heat generated (limiting the fan); the Active option maximises processor performance and uses the fan to reduce heat.

To change the AC (running on mains power) value type the following into the command window (this changes the value to 0 – Passive).

    powercfg /setacvalueindex SCHEME_CURRENT SUB_PROCESSOR SYSCOOLPOL 0

Similarly, you can change the DC (running on battery) value.

    powercfg /setdcvalueindex SCHEME_CURRENT SUB_PROCESSOR SYSCOOLPOL 0

If you want to revert to 1 – Active then run the same commands but substitute the 0 with 1.

You can check that the changes have been applied by running the command in Step 2 again.

Licence

MIT