98

I am using an old laptop and doing heavy processing that needs high CPU usage for a long time (~30mins - 2hours). When the process puts heavy load on CPU for a long time, CPU overheats and computer shuts down. I don't want to use a cooler/stand because I am carrying this laptop around and working outside home.

Is there a way/application that I can limit CPU usage of a process in Windows?

Note: Setting the priority of the process from task manager does not work.

Note 2: Fans are clean.

4
  • 6
    Is renting out 3 hours of CPU time on EC2 not feasible? I would imagine that would work a lot better for most cases.
    – digitxp
    Nov 24, 2010 at 12:55
  • can you specify which Windows version, and which old laptop? If there's a dual core inside, you can just specify the application to run on only one core, which keeps it at 50% and hence cooler temps.
    – Joris Meys
    Nov 24, 2010 at 13:07
  • 7
    @digitxp: I am PhD student at the moment, if it was for business purposes, I would have bought a new laptop or used a powerful desktop machine anyway :)
    – nimcap
    Nov 24, 2010 at 13:28
  • Lowering the priority of one process or thread doesn't affect overall CPU usage. It only determines which thread will get to use the CPU when there is contention.
    – Ron Inbar
    Jun 12, 2021 at 13:10

11 Answers 11

89

A search over the net brings some programs that may help. They are all freeware.

BES - Battle Encoder Shirase

BES is a small tool which limits the CPU usage for a specified process: for instance, you can limit the CPU usage of a process which would use CPU 100%, down to 50% (or any percentage you like). With this, you can use other programs comfortably while doing something CPU-intensive in the background. By limiting the CPU load, you can also cool down your CPU immediately when it happens to get too hot. Of course the processing speed will slow down proportionally if you limit the CPU usage, but it should be much better than crashing because of heat or (in the worst scenario) having your computer broken with a burned CPU.

Process Tamer

Process Tamer is a tiny (140k) and super efficient utility for Microsoft Windows XP/2K/NT/Vista/Win7 that runs in your system tray and constantly monitors the cpu usage of other processes. When it sees a process that is overloading your cpu, it reduces the priority of that process temporarily, until its cpu usage returns to a reasonable level.

Process Lasso

Process Lasso is a unique new technology that will improve your PC's responsiveness and stability during periods of high CPU load. Windows, by design, allows programs to monopolize your CPU without restraint -- leading to freezes, hangs, and micro-lags. Process Lasso's ProBalance (Process Balance) technology intelligently adjusts the priorities of running programs so that badly behaved processes won't negatively impact the responsiveness of your PC.

14
  • 12
    of the three BES looks like the best bet. the other two use priority values which didn't work according to the question Nov 24, 2010 at 13:16
  • 5
    BES is my choice. It is lightweight and does what it us supposed to do.
    – nimcap
    Nov 24, 2010 at 14:15
  • 1
    BES is unable to limit Windows Live Mesh (MOE.exe); it continues to use 95% regardless of any settings. The others can't possibly help because it's already set to Idle priority. Makes the whole OS very slow anyway.
    – RomanSt
    Jul 7, 2012 at 12:58
  • 1
    @Ruslan: It's 140 kilobytes. Jan 16, 2016 at 12:09
  • 1
    @Ruslan: Am I missing something here? I have downloaded thousands of applications so far and I have never seen an app of 8KB size. They are mostly at least in MBs. Compared to lots of other applications, a 140 KB app (not just an executable; the entire program) is quite small. Do you agree? Jan 18, 2016 at 15:17
26

The easiest solution I found is to limit Processor power.

  1. Go to Control Panel.
  2. Hardware and sound
  3. Power options
  4. Edit plan settings
  5. Change advanced power settings
  6. Processor power management
  7. Maximum processor state and lower it to 80% or whatever you want. Using software that measure CPU temperatures like 'Speed fan' you will see that temperatures drop.
5
  • 1
    You can also adjust cooling policy there passive mode may help
    – CrandellWS
    Mar 23, 2016 at 0:12
  • I don't have those options, in "Power Options">"Advanced settings" I have: Desktop background settings; Sleep; Power buttons and lid; Display; Battery. Neither inside those categories I have something to manage the CPU usage.
    – polkduran
    Nov 8, 2019 at 15:19
  • how can I do this on ubuntu 18.04!
    – Rubel
    Mar 6, 2021 at 11:30
  • How it can limit usage for my game server to 10% CPU?
    – amuliar
    Jan 31, 2022 at 23:46
  • 1
    But doesn't this just reduce max CPU for all processes rather than for a process?
    – user103496
    Oct 24, 2023 at 0:42
18

Sure this is an old question but I'm surprised nobody has suggested this yet:

Reduce your CPU speed.

Practically all laptops and Windows itself have built in mechanisms for dynamically adjusting processor speed to match load. You can override this behaviour - for example in Control Panel => Power Options => Advanced, you can set a maximum processor speed that's below 100%. Your processor will then be limited to a lower speed, and thus generate less heat, nomatter what you're doing.

This requires no additional software and more importantly, reducing your CPU speed makes your processor more efficient, so is a better solution than limiting your CPU usage in Windows. Using 50% of a processor at 2.0Ghz will use considerably more power than 100% of a processor at 1.0Ghz. Less power = less heat.

2
  • "reducing your CPU speed makes your processor more efficient" where can I know more about this? Mar 15, 2021 at 17:22
  • Setting this value to less than 100% doesn't reduce your clock rate. It only tells the OS not to schedule any threads to run on the CPU for part of the time. So I don't think it affects your power consumption as much as lowering your clock speed.
    – Ron Inbar
    Jun 12, 2021 at 13:00
7

In Windows 10, 8 and 7:

  1. Go to Task Manager.
  2. Right-click the process for which CPU usage is to be limited. Click Go to details.
  3. Now, the detail tab will appear. Right-click the particular process, choose set affinity, and choose the cores which you will allow the particular process to use.
2
  • 1
    In Windows 7, right-clicking a process in task manager brings up a context menu and one of the options is "Set affinity" which works as you describe. Aug 6, 2015 at 10:44
  • The process I want to limit CPU usage is grayed out. The Go to details is grayed out. Mar 8, 2018 at 13:13
5

Another very convenient way to set the affinity of a certain executable when it launches is to use the start command.

e.g. "start /affinity F iexplore.exe". If there is a single application that you want to start thus throttled, you could create a shortcut with this command. Note that the affinity is set by a hexadecimal value, which may require some trial and error. Check the process in task manager to view the actual affinity outcome!

See more here: http://blogs.msdn.com/b/santhoshonline/archive/2011/11/24/how-to-launch-a-process-with-cpu-affinity-set.aspx

5

I wanted to add the application that i've used in the past to successfully limit the CPU utilization. I've used threadmaster several times in the past.

http://threadmaster.tripod.com/

3

Instead of downloading a program to do that, if you go to task manager and go to details you will see a list of the processes you are running. If you right click and use the "set affinity" option instead of "set priority" you can select how many cores are being used by an individual program hence limiting the amount a CPU usage by the program.

1
  • 2
    Most programs are single-threaded, so setting the affinity to 1 core won't help you at all. (Single-threaded programs can only use a single cpu core, and weren't using more than one core in the first place.) May 10, 2017 at 18:17
2

These days, the best solution is to limit per-process CPU use by limiting the CPU affinity (cores the process has access to). You have less precision (can only limit to certain percentages), but this is a more natural operation than trying to periodically suspend and resume process threads. Process Lasso does a fine job with default (persistent) CPU affinities. However, it also has 'hard' BES style limitation, though that's not recommended since it's such an unnatural act.

2

you can by limiting affinity like others have mentioned (task manager > details tab > finding the exe file > right click > set affinity > removing some cpu ) but the affinity will reset each time you launch the application to permanently limit the affinity for an application you need to create a shortcut with specific command to do that right click (on the desktop or any folder) > New > shortcut and paste this command :

C:\Windows\System32\cmd.exe /c start "NameOfTheapp" /affinity X "path to the app exe"

example:

C:\Windows\System32\cmd.exe /c start "HandBrake" /affinity 3F "G:\Program Files\HandBrake\HandBrake.exe"

X is hexadecimal value so for example if in the affinity tab i have 8 cpu and i want to use the first 6 you need to imagine each cpu as binary 0 is off and 1 is on

enter image description here

so i get 00111111 then you convert this binary to hexadecimal (you can google binary to hex and use calculator) so it's 3F in hex

the shortcut will have the cmd icon to change it to the app icon right click on the shortcut > properties > shortcut tab > change icon > browse to the app exe file and select it and hit ok now you will have the app icon

1

Underclocking the CPU will let you achieve slower CPU speeds, lowering the heat produced. You may need advanced experience if your motherboard or CPU does not have a means of modifying clock speed using a downloadable program. (Search for overclock utilities for your CPU or motherboard (from your CPU and motherboard manufacturer only), just note you will be interested in underclocking.)

In the case there are no utilities avaialble, you will have you enter your computer's BIOS and modify the clock speed of your processor. The easiest way is by setting the multiplier to a lower number. Please don't touch voltages because this can damage your CPU if it's too high, or cause errors when it's too low. Frequencies shouldn't be modified either, just the multiplier. To return to default settings, read your BIOS manual to determine the key to press to restore default settings. (Or just inspect the BIOS screen carefully, especially the exit screen.)

1

CPU overheats and computer shuts down

That's odd on modern systems. At most you would thermal throttle (ie. reduce the frequency of the cpu until safe temperatures are achieved). Modern cpu's are smart enough to prevent overheating until the system is forced to shutdown, so something down the pipe isn't working correctly. I would instead verify that your thermal solution is efficient (heatsinks are properly seated and clean, fans are working, is there a thermal interface between the heat source and the heat sink, etc.). Trying to limit a process wouldn't help the longevity of your system which has thermal issues.

2
  • well, OP did mention that it's an old laptop Mar 15, 2021 at 17:25
  • 1
    @SreenikethanI when I said modern, I referred to anything post Pentium 4.
    – Braiam
    Mar 15, 2021 at 23:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .