Thursday, July 23, 2009

How To Control Disk Thrash From ccmexec.exe (SMS Agent).

Today started like any other day at work. I sat down, logged into my PC and was greeted by the thrashing sound of my hard drive. I've come to realize that the bottleneck in my work PC is by far the hard drive. I don't need any bench marking software, I simple try to access a file or two. Sometimes, I simply open windows explorer and wait.

I finally got so disgusted I fired up procman and dug through the activity to find the culprit.

I had to scroll down to the bottom of a couple thousand lines of activity before I saw a clear pattern, but lo and behold what I saw was incredible!

There were literally thousands of disk writes to my pagefile - and all I had done was log in!

The bizarre part was that the files being read and written to the swap file were files I was not touching.

I saw that the process performing all this thrashing was something called "ccmexec.exe". I'd actually never heard of this process, but after some quick googling I discovered its the exe for the SMS Agent service.

This service (the  Systems Management Server service) performs an indexing or cataloging of all the files on the disk so that windows update will have the latest info on versions of OS files that may need patching. Sounds great, but I'm not sure it's worth the cost considering the downtime and aggravation I experience waiting for this thing to chew through my 150GB drive.

My first instinct was to disable the service in the services control panel applet, but I figured that the corporate IT staff would eventually get a tad upset when they realized my system didn't have the latest patches installed because I disabled the service.

So, I was faced with my own kobayashi maru scenario : I was ineffective while this thing chewed threw my file system, but I couldn't disable the service without sending up corporate red flags that I was a bad citizen.

Then I hit on a solution - a scheduled task to ensure the service did run, just not when I was busy working. I actually used two batch files, one for each task of starting and stopping the service.

Open up notepad (or your text editor of choice), and type the following:
net start CcmExec

save the file as "SMS Agent start.bat"


Now, start a new text file and enter:

net stop CcmExec

save the file as "SMS Agent stop.bat"

Note: you can also replace "net" with "sc", to use the newer Service Control manager command line tool.

Then, set the startup type of the SMS Agent Host service to "Manual" in the services control panel applet.



Next, create a scheduled task to run after hours that runs the "SMS Agent start.bat" file, and another task that runs the  "SMS Agent stop.bat" before you get into the office.



The best of both worlds - you remain productive and a good corporate citizen (after hours)!

No comments:

Post a Comment