ThreadMaster 

Ver. 1.12 Build 182

Contact
By Homepage


Threadmaster 1.12 by Soren M. Pedersen
A application based 
CPU Quota management tool

for Windows 2000 and Windows Server 2003


Product

Description
License
FAQ
Configuration

Files

User Comments
Download 

Visitors:


ThreadMaster
ThreadMaster Monitors Threads and handle high CPU
utilization on a per application basis. 
This function is primarily indented for Terminal servers hosting multiple users.  
ThreadMaster can also be used when running multiple virtual machines on the same server, to limit each  virtual machines CPU usage. 

ThreadMaster is a background service implementing a CPU Quota mechanism on top of the standard thread scheduling algorithms of the Microsoft Windows 2000 Operating Systems. 

A single user is capable of hogging all of the processor resources. The result will be a reduction in the quality of service experienced by all other users on the server. ThreadMaster can help you to deal whit this situation.

ThreadMaster monitors all running applications, and detects when a application  starts to  use excessive processor resources. It dynamically hunt down the offending thread, and clamp the CPU for this thread. This feature ensures that other users can remain working without noticing anything. The clamped process will eventually finish, and the clamp will be removed automatically.

Remember: 20 applications, each having a CPU utilization of 5 % still adds  up to 100%. 

Administration of ThreadMaster is extremely simple, the behavior is in general, controlled by only two key parameters. 
The first parameter instructs ThreadMaster to monitor application activity over a given of  time. 
The second parameter is the allowed max. average CPU utilization for the process over the defined  time.


FAQ

What is ThreadMaster ? 
ThreadMaster is a background service that improves the thread scheduling algorithms of the Microsoft Windows 2000 Operating Systems. 

Is ThreadMaster really 100% freeware ?
Yes. - Why ? I find it important to deliver great service to all users, even if there are a few rotten apples in the basket. The core functionality is extremely simple,  any skilled programmer can do the same on a week-end and a couple of nights.  

Why would I want to use ThreadMaster ? 
Applications sometimes use more CPU resources than they should, causing all other applications/users to slow down. On a machine being shared by multiple applications, especially multiple users, this can be anywhere from annoying to incapacitating. 

Where is the GUI interface ? 
All settings are relative static, so no need for a GUI interface, we thrust you know, what you are doing.  A GUI interface does  not supply any functionality to the core functionality of ThreadMaster. 
Finally - real men don't click.

Can I have more users on the server ?
Yes,  but use ThreadMaster to give the users a better experience, this way you obtain some cheep credit  by the users.

Why not just throw servers at the problem ?
Yes, you can increase the number of servers, and introduce load balancing. But this still doesn't resolve the problem on individual servers. Regardless of whether a server has 10 or 50 users on it, doesn't matter - it only takes one user and one rogue or intensive application to starve all 
the other users of resources.

Can ThreadMaster run without Citrix ?
Yes, ThreadMaster has no knowledge about Citrix and other products on your server.

What kind of Applications work with ThreadMaster ? 
All kind of applications, having a imagename in TaskManager. 

What are the benefits? 
Increased user satisfaction, more users per server. 

What are the drawbacks ? 
None, except for the "loser" that are causing the CPU overload, their application runs significantly slower, but many users will not notice it.

How do I uninstall ThreadMaster ? 
You properly don’t want to uninstall ThreadMaster, but if you insist here is how to do it:
Start a command prompt.
Go to the %windir%\system32\ThreadMaster directory
net stop threadmaster
ThreadMast -remove
Delete the folder %windir%\system32\ThreadMaster
Your are done.

Can ThreadMaster run on NT4 ?
I'm sorry, ThreadMaster can only run on Windows 2000 and above


Configuration
ThreadMaster has no GUI interface, all configuration is done by using a well known tool "Regedit".  Changing  registry keys not described in this section, may cause serious problems. Use Registry Editor at your own risk.
After any changes in the configuration please restart the ThreadMaster service for the changes to take effect.

All the default values in ThreadMaster is based on 2 CPU Compaq server, but can be used on any configuration.


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ThreadMaster\Parameters]

CPUThresholdPct CPU load threshold per application. This is a global setting and affect all applications, unless  other settings are defined in the "Application" or "Exceptions" sections.
Default: 15%,  
Valid range 3 - 100.


MainSampleTime Time in seconds for application load above "CPUThresholdPct" 
This value define the measurement time ThreadMaster using for calculating the average CPU
utilization for applications.
Default: 30 sec.  
Values  above 10 sec.  accepted.


ThreadOverloadActionStart  Command to execute at action start. 
Default :none


ThreadOverloadActionStop Command to execute at action stopping. See the sample files "Threadloginstall.reg" and "ThreadLog.cmd" These files may be edited for your own usage. 
Default: none


A list of special applications and the allowed CPU load.  Only  applications different from the general rule defined by "CPUThresholdPct" . Applications running as a single published application, in many instances, can profit by setting the applicationkey as low as 5%.
The list is  read dynamically. 

IMPORTANT: In multithreaded applications with multiple CPU incentive threads, don't set this value below the current number of CPU incentive threads, this may cause the application to "hang" , or run extremely slow.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ThreadMaster\Parameters\Applications]
  appimagenameA      n        
Application image name and  max. load threshold pct. (n)
  appimagenameB      m        Valid Range 3 - 100
  ...
  appimagenameX      x




A list of applications not handled. Make sure all vital and basis system processes are listed here, otherwise the system
may not work properly.   Do not take it for granted that  antivirus programs etc. are vital, in this sense. 
The list is only enumerated when Threadmaster starts.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ThreadMaster\Parameters\Exceptions]
 
imagenameA
  imagenameB
  ... 
  imagenameX




Statistics is updated by ThreadMaster, this section documents  the work of ThreadMaster.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ThreadMaster\Statistics]


Files

Readme.txt ThreadMaster Readme file
License.txt  License file
Install.cmd     Install ThreadMaster service
ThreadMast.exe   Threadmaser service
Threadloginstall.reg   Install logging of actions, build by install.cmd
Optional File
ThreadLog.cmd  The log recorder, 
Optional File
ThreadSaveLog.cmd A "at" job handling the size of the logfile, 
Optional File
 

User Comments
TBD


License
Thread Master - Freeware License, version 1.12

Permission is hereby granted, without written agreement and without
license or royalty fees, to use, copy and/or distribute this
package, provided that:
 - copyright notices are retained unchanged
 - any distribution of this package, includes this file

Permission is hereby also granted, without written agreement and
without license or royalty fees, to distribute binary programs which
depend on this package.

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT WARRANTY. ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE TO ANY PARTY FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THIS PACKAGE


The source code is available for Euro 2000, please contact  ThreadMaster by mail, for details.

Make a donation,
if you find this program useful.







Update: 2003-03-18