The CPU Checker 
Overview - What does it do?
The CPU Checker is a small exe program that checks your server's CPU percentage FOR ANY PROCESS YOU DEFINE and takes action based on the results.
If the CPU percentage maintains a certain user-defined level for a user-defined period of time The CPU Checker will e-mail you and/or run a user-defined bat, com, exe file to kill any processes or reset (stop/start) any service that may be using the CPU resource.
Take the Quick Tour:

First, select the process you want to check. You can set the cpuchecker.ini file to ask this only once. After that it will store it in the ini file for future use.
The CPU Checker runs checking the inetinfo.exe process CPU usage.
The CPU Checker finds the CPU % high based on your criteria and runs IISState on the INETINFO.EXE process
The CPU Checker runs IISState on the DLLHOST.EXE process. It will find ALL the DLLHOST.EXE processes and run IISState against each one.
Upon running IISState on all relevant processes The CPU Checker will run your user-defined bat,com or exe file. You tell The CPU Checker what to do to clear the problem and it will do it.
The CPU Checker, upon taking care of the problem for you, notifies you by sending you an email. You can send email to yourself, your pager, cell phone.
You can provide a list of email addresses to send to and The CPU Checker will send them.
Five reasons WHY you need The CPU Checker
- The CPU Checker is a small executable. All its components install into one directory.
- You can carry the CPU Checker distribution on a floppy disk
- The CPU Checker runs on your server, via a scheduler.
- The CPU Checker is totally configurable via an ini file.
- Simply read the cpuchecker.ini file, set a few directives, and you're set!
- The CPU Checker can now run IISState for you upon finding a high CPU condition. This alone is a valuable time saver for you and your company. Don't sit around waiting for the problem to occur again so you can run IISState....have The CPU Checker wait for you!
The CPU Checker settings
- Number of times to run (within the loop)
- CPU percentage to check for
- Time delay between each loop
- BAT file to run upon meeting the user-defined condition.
- If the condition is met, an ini file called details.ini is created in the directory the program was installed into.
The details.ini file looks like this:
[The CPU CHECKER]
Thu 5/22/2003 12:24:36 PM=CPU USAGE IS: 3 percent
The ini file is written when the condition is met. You will have a record of when The CPU Checker performed its duty.
Features/Benefits
- Maximize server uptime!
- Put The CPU Checker to work babysitting the server while your staff continues to troubleshoot the core problem.
- The CPU Checker will document the date and time of each instance the CPU percentage remains high.
-
Saves time and money by freeing up valuable man hours.
- The CPU Checker may be run interactively or silent. The CPU Checker takes input from a pre-defined INI file.
- Run a separate program after the condition is met. Run a bat file for instance to kill offending processes or reset services.
- You have complete control on all these parameters.
- The CPU Checker can run through a scheduler -- unattended!
- ALL The CPU Checker program components install into a single directory. No registry entries or system files to potentially compromise your server.
- A powerful utility for all system administrators!
Purchase The CPU Checker today and start saving time immediately!
What does the command line look like?
cpuchecker.exe
How can I use the program?
Here's a practical example on using the program.
Recently one of my Web servers was experiencing high CPU usage, high meaning up to 100% (if you run Web servers it's not a matter of *IF* you will experience this problem rather it's a matter of *WHEN* you will experience it).
I knew that two processes were the culprits: INETINFO.EXE and one of the DLLHOST.exe processes. I sort of had an idea about *why* this was happening but further testing would confirm it.
Well, in the meantime I had hundreds of Web sites that required 24x7 uptime. So, since I found it physically impossible to sit in front of the server 24x7 I wrote this program and had it sit in front of the server for me.
The program was set to run every five minutes via the task scheduler, checking the INETINFO.EXE process for 30% CPU and to loop 5 times during each run. My INETINFO.EXE process never gets above about 5 or 10% so if it was at 30% I knew there was a problem.
If The CPU Checker returned 30% CPU after running 5 times I had it email me and send an email to my pager. I then have it run IISState. IISState will write a log of the "stuff" going on inside of the INETINFO.EXE and DLLHOST.EXE processes. After writing the valuable logs The CPU Checker runs a bat file which resets IIS for me. Even though the CPU was 30% it would still run processes and serve Web pages. Getting notified via my pager allowed me to get to the server and "look around."
Your BAT file can contain instructions to kill a process or reset services - it can contain anything you need done really. I use the pskill.exe command. It's a FREE program from www.sysinternals.com
Even after the problem was solved I continue to run The CPU Checker as a precaution. Sometimes these processes do go high for various reasons (i.e., stuck threads, too much traffic, etc)
John Cesta
Author
|