Sqlservr.exe Using too much disk time

We have a client with a SBS 2008 server that is getting the following SNMP event:

Monitor Set: high.driveperformance.counter
Type: Counter
Log Object Name: Logical Disk Drive C % Disk Time
Agent Alarm Time: 12:46:27 pm 17-Oct-13 UTC
Event Time: 12:46:27 pm 17-Oct-13 UTC
Log Value: 2358.000244
Alarm Operator: Over
Alarm Threshold: 85 % Disk Time
Alarm Duration: 30 Minute(s)

When I run HDTune to watch the disk usage, there are 3 instances of sqlservr.exe all using  constant disk time. I have already tried to limit the memory usage in all the instances of SQL (using the management console) to 200-500MB. After doing so, the memory usage went down but the disk time did not. the instances of SQL are SBSMONITORING, The Active directory (MICROSOFT##SSEE) an the other i can't identify directly. Its the first two in that list that are taking all the disk time.
Any Suggestions?
Jordan SmithAsked:
Who is Participating?
VirastaRConnect With a Mentor UC Tech Consultant Commented:

Try running Small Business Server 2008 Best Practices Analyzer and see whether you get any hints to improve the server performance.

Windows Small Business Server 2008 Best Practices Analyzer

Hope that helps :)
Is the server busy?  Does it handle a lot of connections or are there a lot of big queries running?

Database servers should generally be given more memory and not less - that helps them cache in memory and raise performance without hitting the disk so hard.

By limiting memory, you're effectively forcing it to swap to disk and that's going to do exactly what you're describing.

Another way to boost performance is to add indexes that play into the kind of queries you're doing.  Indexes use disk space, but saving time on table scans is always good.
lcohanDatabase AnalystCommented:
In my opinion is not much you can do about it in particular considering "the instances of SQL are SBSMONITORING, The Active directory (MICROSOFT##SSEE) " are using the disk(s) because the constantly read/write therefor disk IO. AD SYSVOL directory share is used to distribute scripts and files that support Group Policy to client computers on the network.

As far as indexes going...I would 100% agree if these would be "user" server/databases but as ther are related (backend) for SBS and AD I don't think there are much indexes that can help reduce the IO.
Jordan SmithAuthor Commented:
I Used the pest practices analyzer to the problem down to the SBS monitoring service using all the disk time. I ended up using HD tune to look at the disk usage graph as I shrunk the DB, limited its memory then gave it more memory. turns out that the SSEE DB had a 32 GB log file. I followed the steps at http://www.satheesh.net/2011/04/05/how-to-shrink-sql-sharepoint-database-log-files/ to shrink both the Sharepoint DB and the SBSmonitoring DB. the log file of the SSEE (the one that had sharepoint in it) shrink to 50 MB and saved some disk time and C:\ space. the sbsmonitoring however, was not that easy. I tried rebuilding it according to http://blog.korteksolutions.com/the-sbsmonitoring-database-is-nearing-maximum-size-on-sbs-2008/ but would not work. I then found the i can just stop the SBSmonitoring service as we use kaseya anyway. When I did that, HD Tune showed me that the Disks where being Zerg Rushed with data from sbsmonitoring. the Server is now at least a million times faster! :)
VirastaRUC Tech Consultant Commented:
Hi @dbzmaxx

I am glad that you got that nailed!! :)

and thanks for sharing the steps you did to resolve it really appreciate it!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.