Limit CPU usage

  • Thread starter Thread starter Poppe
  • Start date Start date
P

Poppe

Hello

Is there a way i can run a process, and limit it's CPU usage with some
in-built windows command? Or maybe run it with low priority?

Can you recommend some external program that enables me to do this?

I have a problem with a certain process running over the roof, causing CPU
problems.

Thanks!
 
Or is there a way i can change the priority of a running process from the
command line?

Thanks!
 
You can use the START command. For more information do START /? at a
command prompt.

John
 
--->
Or is there a way i can change the priority of a running process from the
command line?

Thanks!

Once the process starts, you could use the Task Manager. Right click on
the task and choose "Set Priority" and select a priority from the slide-out.

Questor
 
Hello and thanks for suggestions

Does anybody know how to do this from the command line?

The situation is that the users are very basic, and they don't know how to
use task manager. So i should somehow automate the process priority setting,
so they don't have to do it manually.

Maybe use vbscript or something?
 
Poppe said:
Hello and thanks for suggestions

Does anybody know how to do this from the command line?

The situation is that the users are very basic, and they don't know how to
use task manager. So i should somehow automate the process priority setting,
so they don't have to do it manually.

Maybe use vbscript or something?

You can do it with WMI.

At the command prompt you use WMIC:

wmic process where name="notepad.exe" call setpriority 16384


In a script use the Win32_Process class and the SetPriority method:

-------------------------------------------------------------

Const BELOW_NORMAL = 16384
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess in colProcesses
objProcess.SetPriority(BELOW_NORMAL)
Next

----------------------------------------------------------------


Possible Priority class values are:

64 Idle

Specified for a process with threads that run only when the system is
idle. The threads of the process are preempted by the threads of a
process that run in a higher priority class, for example, a screen
saver. The idle-priority class is inherited by child processes.

16384 Below Normal

Indicates a process that has priority above IDLE_PRIORITY_CLASS, but
below NORMAL_PRIORITY_CLASS. For Windows 2000.

32 Normal

Specified for a process with no special scheduling needs.

32768 Above Normal

Indicates a process that has priority above NORMAL_PRIORITY_CLASS, but
below HIGH_PRIORITY_CLASS. For Windows 2000.

128 High Priority

Specified for a process that performs time-critical tasks that must be
executed immediately. The threads of the process preempt the threads of
normal or idle priority class processes. An example is the Task List,
which must respond quickly when called by the user, regardless of the
load on the operating system. Use extreme care when using the
high-priority class, because a high-priority class application can use
nearly all of the available CPU time.

256 Real Time

Specified for a process that has the highest possible priority. The
threads of the process preempt the threads of all of the other
processes, including operating system processes that perform important
tasks. For example, a real-time process that executes for more than a
very brief interval can cause disk caches not to flush or a mouse to be
unresponsive.


http://msdn.microsoft.com/en-us/library/aa394599(VS.85).aspx
WMI Tasks: Processes (Windows)

http://msdn.microsoft.com/en-us/library/aa393587(VS.85).aspx
SetPriority Method of the Win32_Process Class (Windows)

John
 
Back
Top