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?
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:
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.
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.