Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Hello I have an HP server configured for RAID 1+0 using 2 SATA disks. I'm pretty new to handling servers also.

The server has had the same OS(Windows Server 2003) on it for a while so I'm not sure of what all it has been through.

It has a dual core P4 cpu running at 3ghz. 512M Ram.

The server runs very slowly.. I am not sure what is making it so slow though. There is not much performance different between when it has nearly no RAM free and when it has over 100M of RAM free. The only thing it is used for is a SVN server and hosting a low activity development SQLExpress database. Yet at times it can take over 1 second to perform a simple SELECT * FROM TABLE where the table only has like 5 records in it.

The CPU is not maxing out or anything either. It hardly ever gets above 25% usage.

So my only idea is disk access. But even with a disk speed test I can't be sure that is where the bottle neck is. I've tried doing some performance monitoring, but the only odd thing I'm seeing is a large amount of Pages/Sec.(idles at close to zero and peaks at over 1000 while accessing the database and such).

TL;DR: How can I tell where the performance bottle neck is on my server in terms of disk, CPU, or memory, or something else?

share|improve this question
RAID 1+0 requires a minimum of 4 disks. You might want to look into the HW RAID controller during boot to see how many physical disks there are or open the case and physically look for the hard drives. – pplrppl Dec 8 '09 at 19:57
I think I misread the configuration.. I believe it's actually raid 0. sorry – Earlz Dec 8 '09 at 21:25
up vote 3 down vote accepted

My suspicion is that you're experiencing a lot of hard page faults, even though you're seeing "free" RAM.

The default counters graphed when you start "Performance Monitor" on Windows Server 2003 are some good counters to get a baseline view of what might be going on:

  • Object: Memory, Counter: Pages / sec
  • Object: PhysicalDisk, Counter: Avg. Disk Queue Length
  • Object: Processor, Counter: % Processor Time

These counters will give you a really gross view of what's going on with the machine and where you might be seeing a bottleneck (CPU, RAM, disk IO). I would consider removing the "Avg. Disk Queue Length" counter that's added by default and add counters for "Avg. Disk Queue Length" for each physical disk on the machine. If you're paging a lot you may see a long disk queue (over 2) on the disk hosting the pagefile.

You really want to see whether you're having a significant number of hard page faults (that is, page faults that have to go to the disk) or not. Watch the "Pages Input / sec" counter in the "Memory" object to get a feel for how many hard page faults are occurring.

Hard page faults occur when the memory page needed to fulfill the request must be read from disk. The "fix" for hard page faults is to add physical RAM.

Soft page faults occur when an application first writes to a new page (copy on write), asks for a page to be zeroed, or accesses a page that's already elsewhere in memory (like a memory-mapped file being used by another process). You probably can't do a lot to "fix" it if you're seeing a lot of soft page faults, but you shouldn't be too worried about them either.

If you're getting a lot of hard page faults, add RAM to the box.

share|improve this answer
When is it "a lot"? I'm getting over 100,000 inputs/sec when I do some simple SQL queries – Earlz Dec 8 '09 at 21:32
Also, I would like to be sure this is the problem(not enough RAM). I don't want to just treat a symptom. The fact that I have over 100M of Ram free at one time doesn't seem to indicate I need more RAM. – Earlz Dec 8 '09 at 21:43
100,100 pages input / sec indicates severe memory paging, and is a sign that you're low on physical RAM. It's unclear to me where you're seeing that "free RAM". "High" is subjective. This Microsoft blogger, for example, considers 15 to be too high for an SQL Server computer:… – Evan Anderson Dec 8 '09 at 21:59
Like go to task manager and look at Performance. At Physical Memory, where it says "Available" I almost always have over 100,000k. – Earlz Dec 8 '09 at 22:14
You're misunderstanding what "Available" means there. Have a look at: Available, in that context, also means memory that is on the "Standby List", which includes memory in use by applications but that can be freed immediately, if necessary, if another process needs more memory. "Available" doesn't mean "Free". See… for even more detail. – Evan Anderson Dec 9 '09 at 0:02

More ram. You need to load up as much ram as the server can physically support. Ram is cheap these days so start with a ram upgrade and see if your "slow server" problem doesn't go away.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.