Optimizing and Troubleshooting Server Performance

Optimizing the performance of the Windows 2000 Professional desktop is a rather simple affair. The main configuration option is the Performance Options section on the Advanced tab of the System Properties.

Usually we want to optimize performance for applications on Windows 2000 Professional (default) and for background services on Server (default).

However, another area to consider when configuring for performance is the system’s virtual memory, or page file settings. In Windows 2000, the page file size is automatically set to 1.5 times the amount of RAM present in the system by default, but this can be changed. The page file exists physically as the file pagefile.sys in your %systemroot% partition (the partition containing your WINNT directory). To improve page file performance consider moving it to a partition other than the system or boot partition, split evenly across multiple physical disks (except the system or boot partitions), or on its own fast under-utilized drive. Also consider setting the initial and maximum paging file sizes to the same value to avoid the performance costs associated with dynamically resizing the page file on the fly.

As far as application performance and responsiveness is concerned, applications can still be configured to run at different priorities. This can be controlled by either starting an application from the command line (using the start command with the /low, /belownormal, /normal, /abovenormal, /high, or /realtime switches), or by changing an application’s priority using Task Manager. Only an administrator can start set a program to run using the realtime priority.

Task Manager still allows familiar features, including the ability to start or stop applications or processes, as well as get quick statistics with respect to memory and processor usage. The program now also includes the ability to view the difference between user mode and kernel mode resource usage with the Show Kernel Times option on the View menu. Kernel mode resource usage will appear in red.

Synchronizing Offline Files

While we’ve already discussed the offline caching of files, this section involves a look at the synchronization settings relating to offline files and how they can be configured and controlled. Synchronization Manager allows you to control how and when offline files are synchronized. You can find the utility via the Synchronize option on the Tools menu in Windows Explorer. Options include synchronizing offline files, folders, and web pages at logon/logoff, when the system is idle, or at a scheduled time. You may, for example, choose only to synchronize a certain folder, instead of all offline items. You can also control whether synchronization occurs based on the type of connection. For example, you may want to synchronize when connected via the LAN, but not when connected via a dial-up connection.

The Synchronization process also handles file conflicts. For example, let’s say that you synchronize a directory and then disconnect your system from the network (a laptop). If you change a file while offline, Windows 2000 will automatically replace the network version with your newer version once you reconnect and synchronize, assuming the network version hadn’t changed. If another user had also changed it while you were offline, Synchronization Manager would ask how you would like to proceed. It allows you to view both copies of the file, and decide on an appropriate course of action. You could keep both files (renaming one), overwrite the network copy with yours, or overwrite your copy with the new network copy.

Scheduling Tasks

While Windows NT 4 relied on the AT command for the purpose of scheduling tasks, Windows 2000 actually includes the Task Scheduler utility. This tool allows you to schedule a program, script, or backup to run, according to the schedule you provide. Accessible via Control Panel (Scheduled Tasks) or the Accessories menu, you can schedule tasks to run once, daily, weekly, monthly, when the PC starts, or when a user logs on. A few important notes about the Task Scheduler:

  • You can schedule a task to run with elevated privileges. That is, you can specify that a task run using the Administrator account, even though the locally logged on user does not have the rights to perform a task.
  • If you change the password of the user whom the task is scheduled to run as, the task will fail. The password associated with a task does not change when the user changes their password. (For this reason, you might consider creating a service account whose password never expires).
  • In the advanced properties of a scheduled task, you can set things such that a scheduled task will never run when a machine is running off battery power, or that the task should run when the system is idle.
  • Note that the Task Service can be stopped or restarted – a possible course of action if a task fails and the username / password is not the issue.

Multiple CPU Systems

Windows 2000 Professional supports up to 2 CPUs for systems that require more processing power. Specifically, Windows 2000 supports Symmetric Multiprocessing (SMP), a setup whereby threads are distributed more or less evenly across system processors. If you installed Windows 2000 Professional on a multiprocessor system, you should have no problems because the proper Hardware Abstraction Layer (HAL) would have been installed during the installation process. However, if you are upgrading a single CPU Windows 2000 Professional system by adding a second CPU, you will need to update the HAL on the system. You do this via Device Manager. Expand the Computer branch, and choose Update Drivers from the Drivers tab in the properties of your device. From the Wizard, choose the ‘Display a list of drivers from…’ option and then ‘Show all Hardware from this device class’. You will be presented with options such as those below. The MPS-compliant driver is for non-ACPI systems. Note that you no longer use the NT 4.0 Uptomp.exe utility to upgrade to multiple processor support.

Updating Drivers and System Files

Windows 2000 supports updating drivers in a few different ways. One way is via Device Manager, where drivers can be updated on a device-by-device basis as necessary using the Update Device Driver Wizard. Note that it is also possible to update device drivers (as well as system files) via the Windows Update feature. The good news is that only an administrator can do this.

Windows 2000 also supports a few new features with respect to drivers. One of these features is driver signing. Simply, Microsoft digitally signs all drivers and system files included with the operating system in order to certify that they have been tested and function correctly under Windows 2000. As the administrator, you can control how the system responds to unsigned files via the Hardware tab in the System program, where you will find the Driver Signing button.
Note that if you attempt to install an unsigned driver, by default the system will warn you, but you can also configure it to ignore the signatures or block unsigned files completely (you should also know that this can be controlled via Group Policy – more on this later in the series as well). Other important things you should know about driver signing in Windows 2000:

  • The Signature Verification Utility, Sigverif.exe, will show you all drivers and system files that have not been digitally signed. You can save the output to a file, and choose which types of files to scan via the Advanced properties in the program.
  • Another tool that exists in Windows 2000 for the purpose of verifying driver activities is the Driver Verifier tool, Verifier.exe. This tool can be used to verify that a driver is functioning correctly and without errors.

Internet Connection Sharing (ICS)

Internet Connection Sharing (ICS) is a feature in Windows 2000 very similar to the same feature found in the second edition of Windows 98. With ICS, you can share a remote network connection from one machine with other machines on your single-subnet network. Essentially, ICS configures your Windows 2000 system as a Network Address Translation (NAT) server, translating private internal IP addresses to the public IP address provided by your ISP. Although this technology is usually used for sharing a Internet connection, it could also be used to share a connection to a private network. ICS is set up from the Sharing tab of the properties of a connection object.

A few important notes on ICS:

  • Ensure that the connection that is shared is the external connection (this would be your modem connection, or your second NIC connected to your DSL or Cable provider). You internal connection will automatically be reconfigured to support the range of addresses handed out by ICS.
  • Only an administrator can set up ICS.
  • You must have at least 2 connections on the system for it to work (for example, 1 NIC and a dial-up connection to your ISP)
  • ICS turns your machine into a mini-DHCP server, and will hand out addresses to your internal clients (who should be set to use DHCP).
  • You should not use ICS on a network containing existing DHCP servers (ICS does this), DNS servers (ICS proxies DNS requests), Windows 2000 domain controllers, or gateways (the gateway provided by ICS DHCP will be the ICS system internal interface). If you have these and need to continue using them, you will need to look at a server solution, such as NAT, found in Windows 2000 server Routing and Remote Access (RRAS).
  • ICS is simply a home and small office single-subnet connection sharing solution.

Network Adapters

The way that you interact with network adapters has also changed from Windows NT 4. Where previously all settings were found in the Network program in Control Panel, now all network settings reside in the Network and Dialup Connections program. One major change is that each connection is viewed as a separate connection object. So, if you had 1 NIC, a VPN connection to your office, and a dialup connection to your ISP, you would have 3 connection objects, each of which could be separately configured.

Note that you cannot create additional Local Area Connection objects – these are added automatically by Windows 2000 as you add network adapters. The properties of a given connection object allow you change settings including protocol settings, driver properties (on a network card), authentication and encryption protocols (for dialup and VPN connections), as well as settings for redial and so forth. Another thing that has changed is how protocol bindings are configured. These are not handled in the properties of a connection object, but instead from the Advanced Settings menu item on the Advanced menu in Network and Dial-up Connections.

Configuring Hardware Devices

The bad news is that I/O device monitoring, configuration, and troubleshooting covers a whole gamut of hardware including printers (already covered), fax printers, scanners and cameras, multimedia devices, mice, keyboards, smart card readers, modems, infrared, and USB devices. The good news is if you know the basics, you should be fine. Most I/O devices are looked at individually below according to where you configure settings in Control Panel (where applicable):

Fax: Allows you to set properties such as fax user information and cover pages. Users send a fax by printing it to the fax printer. This tool also allows an Administrator to set properties with respect to how faxes are sent, received, or saved. Note that you will only see this tool is a fax modem is installed, and that a fax printer cannot be shared like other printers.

Scanner and Cameras: Not much to see here except an Add button, link to the associated troubleshooter and a Test button on a device’s General tab.

Sounds and Multimedia: You can get into and change the properties (such as drivers) or related hardware from here.

Mouse: change the speed, button configuration, click settings, pointer speed, and mouse hardware settings.

Keyboard: control input locales (language layout), key speed, and hardware settings.

Wireless Link: This option exists in Control Panel if your system has an infrared device installed. The Wireless Link icon appears on the taskbar whenever another infrared device is within range, allowing you to exchange files between systems or print to a printer with an infrared port.

Smart Cards (not in Control Panel): Smart cards will be automatically detected by Plug and Play (if compliant), and will connect to either a serial, USB, or PC Card port. In order to use a smart card, a certificate must first be installed on your card, which includes your private and public keys (requires an Enterprise Certificate Authority – more on this later in the series). The smart card can then be used to log on locally or remotely. Users will be prompted for a PIN number after inserted their smart card. Smart Cards use the Extensible Authentication Protocol (EAP) as their authentication method.

USB Devices (not in Control Panel): USB devices are listed in Device Manager under Human Interface Devices. One issue with USB is that your system BIOS may not support it, or may have it disabled (enable in BIOS). All USB devices attached to the same controller have a fixed amount of bandwidth to share. This can be allocated via the Advanced tab of the USB controller’s properties. Note also that there are two types of USB hubs: those that are self-powered (electrical plug – more power), and those that are bus-powered (less power, not good for things like scanners, etc). You can view the amount of power that a device will consume from the Power tab of the USB Root Hub properties.

Phone and Modem Options: since Windows 2000 cannot detect certain internal modems, you can use the Modem tab in this program to open the Add New Modem wizard. Going into the properties of a modem allows you to run a diagnostic test, as well as write the results to a log file.

One additional note with respect to modems. You should be aware that Windows 2000 Pro supports Multilink, the ability to aggregate the bandwidth from two or more physical connections into one logical connection. Modems, ISDN and X.25 connections are all supported. You can configure the properties that Multilink will use on a connection-by-connection basis. For example, you could choose to use Multilink when dialing the office, but not your ISP. The default is that all lines are dialed, but this can be changed, as shown below. Options are configured from the Options tab of a connection object in Network and Dial-up Connections. Multilink must be enabled and configured on both the client and RAS server in order to function.

Mobile Computer Hardware

Windows 2000 obviously provides support for mobile computing. In this section we’ll explore mobile hardware profiles, APM, ACPI, and other power related options.

Windows 2000 still supports the use of hardware profiles to control which hardware drivers and services are loaded when Windows 2000 boots, such as when you are either on or off the network. If you have more than one hardware profile, you will be prompted to choose one when the system boots. The default hardware profile includes networking support, but if the machine is a laptop, you should also create an ‘off the network’ profile. Specify that a profile is for a laptop by choosing ‘This is a portable computer’ in the properties of the profile. Windows 2000 will automatically attempt to determine whether or not the computer is docked. If you want the profile to be used exclusively in a docked or undocked mode, you should choose the appropriate of option.

If Windows 2000 detects a docking station, you will find an Eject PC button on the Start menu that you can use to dock or undock without a reboot. Windows 2000 also supports changing PC Cards, drives, and external hardware (such as USB or parallel devices) without a reboot. However, you should notify the system that you are planning to unplug a device by using the Unplug option in Add/Remove hardware, or the Unplug/Eject taskbar icon.

Multiple Monitor Support

Another new feature in Windows 2000 is the ability to support multiple monitors. Windows 2000 can support up to 10, and allows you to extend the desktop across these additional monitors. Of course, you will need a number of separate display adapters for this to work (or an adapter that supports dual monitors). One adapter must function as the primary display device, the others as secondaries. Color depth and resolution can be configured for each device individually, via the Display program. A few important notes on multiple monitors:

  • PCI or AGP display adapters are the only types supported for multiple monitors in Windows 2000
  • If you have an on-board display adapter, this will automatically be made a secondary. You should always install Windows 2000 with the onboard adapter only. If another adapter is present, Windows 2000 will disable the onboard adapter during setup. Add additional display adapters after the OS is installed. If your setup now has an onboard and a PCI adapter, for example, the PCI will be the primary, the onboard the secondary. Note that your BIOS may not support using the onboard adapter when another physical adapter is present.
  • You can drag the monitor icons in the Display program to match the physical layout of your monitors.
  • If multiple monitors is not working correctly, be sure that the ‘Extend My Windows Desktop Onto This Monitor’ checkbox is selected for any secondaries, and that you are using a display adapter capable of supporting multiple monitors (PCI or AGP)