— with the possible exception of moving the pagefile to a dedicated disk — will do much by itself, but collectively these techniques can improve server performance noticeably.
Most articles about optimizing server performance tend to center around using Performance Monitor to look for performance bottlenecks. Performance Monitor is an excellent tool for figuring out how to improve your server’s performance, but performance monitoring is time-consuming, plus you have to know how to interpret the data that it yields.
Still, here are 10 little things you can do to gain in server performance.
1. Use a dedicated drive for the pagefile
This is probably the tip that will give you the largest performance gain. By default, Windows creates a pagefile that it treats as virtual memory. Because Windows uses this file frequently, it’s best to place it on a dedicated drive (not a dedicated volume). Doing so ensures that Windows will not have to wait on another application to finish using the hard disk before it can read data from the pagefile.
2. Keep your hard disks defragmented
Modern hard drives are extremely fast when performing sequential reads. However, performance goes out the window when the disk is asked to read data stored in random locations. By keeping your hard disk defragmented, you ensure that blocks of files are placed in sequence rather than scattered randomly across the surface of the drive, thus allowing your computer to read files more efficiently.
3. Use the NTFS file system
Although NTFS is the default file system for Windows servers, Windows does support the use of FAT and FAT-32 file systems. Every MCSE training book I’ve ever read recommends using the NTFS file system is because it is more secure than alternative file systems. What these books fail to mention is that NTFS is a transaction-based file system. This means that NTFS is slightly faster, and much less prone to corruption than the FAT or FAT-32 file systems.
4. Avoid running 16-bit applications
64-bit Windows operating systems can’t run 16-bit applications at all, so this one isn’t even an issue for those with 64-bit operating systems. 32-bit Windows operating systems will run 16-bit applications, but at a price. Windows uses a separate multitasking model for 16-bit applications than for 32-bit applications. The specifics of how Windows multitasks 16-bit applications would require a separate article, but suffice to say that running 16-bit applications negatively effects performance.
5. Look for memory leaks
Memory leaks are caused by poorly written applications. It’s normal for an application to request memory from the operating system on an as-needed basis. Typically, an application will return memory to the operating system when it is no longer needed. An application that contains a memory leak will ask for memory when it needs it, but will fail to release the memory when it is finished using it. The next time the application needs memory, it will ask Windows for more, rather than using the memory it has already reserved. Over time, Windows has less and less memory to assign to other applications.
Memory leaks have a negligible effect on system performance at first, but over time their effects become more and more noticeable as the application continues to run.
Although I said I wasn’t going to talk about performance monitoring, Performance Monitor really is the best tool for finding memory leaks.
6. Remove seldom-used utilities
Every server I’ve ever purchased has come with all sorts of monitoring or logging utilities. If you use these utilities on a regular basis, there’s nothing wrong with having them installed on the server. But it never fails to amaze me how many administrators install (or never remove) utilities that come with the server, and then never use them. Running an application you’re not actually using is a waste of server resources.
7. Disable unused services
On a similar note, I also recommend looking through the Service Control Manager and disabling any services that are not required for the role the server is performing. Not only will disabling unused services increase the server’s performance, it will also increase the server’s security. A law of computing states that the larger the executing code base, the greater chance that the code contains an exploitable vulnerability. By disabling unnecessary services, you are shrinking the size of the executing code base, thereby reducing the chances of the server containing an exploitable security hole.
8. Log off
This is another example of a situation in which you can increase security and performance at the same time. You should always log off of a server when you’re not actively using the console, for security reasons. At the same time, when you are logged on, Windows loads your user profile. This consumes memory and CPU cycles.
9. Compress the hard disk
When Microsoft released MS-DOS 5.0, they introduced the disk compression feature. At the time, the idea was that a hard or floppy disk could be compressed so that more data would fit on the drive. Back then I tried using disk compression, and my computer slowed down so much that I went back to using an uncompressed disk, and never looked at compression again until recently.
Today, under the right circumstances, compression can actually increase performance. Hard drives are typically the slowest component in a computer. However, if you can compress a file, you reduce its physical size, which also reduces the amount of time that it takes to read the file from the disk.
At the same time, a compressed file must be decompressed after it has been read from the disk. The decompression happens on-the-fly in memory, and the process uses some CPU time in addition to memory. If your server is running a disk-intensive application that deals with a lot of individual files (not a database), compression may improve performance. Otherwise, you’re probably better off not compressing a hard disk.
10. Adjust the server response
A server is different from a desktop computer in that applications are not usually run from the server’s console. That being the case, it’s best to optimize the server so that applications running in the background take priority.
You can do this by opening the Server’s Control Panel and double-clicking the System icon. When Windows opens the System Properties sheet, go to the Advanced tab and click the Settings button found in the Performance section. Windows will now open the Performance Options properties sheet. Go to the properties sheet’s Advanced tab and make sure that Windows is set to provide the best performance to background services.