Observe the Bytes Total/sec counter to see whether NT Server is waiting for
a slow client to receive data or waiting on an overloaded network. The
information that this counter provides is not useful until you compare it with
the network architecture in use. For example, if you are running a TCP/IP-based
10Base-T Ethernet network, it has a theoretical maximum throughput of 1.25MBps.
If you take into consideration Ethernet and TCP/IP overhead, the maximum goes
down to roughly 1MBps, and the network rarely achieves that speed. Ethernet uses
a Carrier Sense Multiple Access/Collision Detection (CSMA/CD) scheme,
which leads to a poor degradation curve under heavier loads. Thus, as the
network utilization increases above the 40 percent to 60 percent range, clients
on the network begin noticing slower response times to their network requests.
These slower response times result from increased collisions on the physical
layer cable, which in turn causes the adapter to retry the transmission after a
random delay.
In a 10Base-T network, if the Bytes Total/sec counter shows a sustained
output rate between 400,000 bytes per second and 600,000 bytes per second and
your output queue continues to grow, your network adapter and architecture
combination has become a bottleneck. Don't forget to check the other NT Server
resources--memory, CPU, and disk subsystems--to be sure that they aren't
becoming bottlenecks.
Network Monitor. NT Server includes a version of the
Network Monitor tool from Microsoft's Systems Management Server (SMS). With the
SMS version, you can monitor any system that has an active network monitor
agent. However, NT Server's Network Monitor lets you view network traffic only
with respect to the server it is running on. As you see in Screen 1, to install
Network Monitor from the Control Panel, you select Network, Services, Add.
Select Network Monitor Tools and Agent, and then reboot your server to finish
the installation. Now you can start Network Monitor from the Start, Programs
menu.
After you've launched Network Monitor, select Capture, Start to begin
monitoring the network. Network Monitor is a powerful addition to NT Server: You
can use it to debug network problems associated with the server down to the
packet/protocol level.
To detect potential network bottlenecks, Network Monitor places the network
card(s) into promiscuous mode; that is, the card analyzes every packet moving
through the server's network interface. Under Network Monitor's default view,
you can quickly obtain information such as network utilization, frames per
second, bytes per second, and the originating systems of your network traffic.
Beware: Network Monitor can use a fair amount of resources on a busy
server. In my tests, I found Network Monitor consumed approximately 4 percent of
the CPU resources on a 166MHz Pentium Pro with 512KB of RAM. You set the amount
of RAM that Network Monitor uses in the Capture buffer settings. The setting
must be low enough to not use too much memory (RAM) but high enough so that
Network Monitor doesn't drop any packets. Typically, a 2MB to 3MB buffer setting
is sufficient.
Using Network Monitor under its default settings, as shown in Screen 2,
observe whether the value of the % Network Utilization counter is consistently
above the 40 percent to 60 percent range. If this range of utilization is
common, you are using your current adapter close to its maximum capacity, and it
is becoming a bottleneck. To alleviate this situation, consider adding another
network adapter to segment your network. This action will add more network I/O
bandwidth to your server by physically and logically separating your networks
into two parts. You can activate routing under NT Server through Control Panel,
Network, Protocol, Routing to pass data between networks. NT Server is capable
of supporting basic routing functions under a light-to-medium load, but this
routing function will add some overhead to your system.
Tuning Network I/O
Network Monitor earns its keep in this segmentation tuning process. In the
default view, Network Monitor displays bytes sent and received between the
server and the various systems demanding service. You can use this information
to help you decide where to physically connect the various systems on your
network; you want to balance your network load by distributing the more heavily
used systems between your two network segments. Even though segmentation
involves some new cabling (physical addressing) and logical subnetting,
it is a proven technique to optimize your server's network I/O and is relatively
easy to implement. Once you have used this divide-and-conquer technique,
continue to monitor your server's network utilization and output queue to head
off future bottlenecks.
Another technique for optimizing your server's network I/O performance is
to bind your network adapter to only those protocols that your network is using.
Under Control Panel, Network, Protocol, you can check which protocols are
currently installed. Removing unnecessary protocols lowers the amount of memory
that NT Server allocates for network I/O and ensures that your network has no
unnecessary traffic.
Finally, a popular optimization technique for a TCP/IP-based network is to
adjust the TCP/IP window size. The TCP/IP sliding window is a dynamically set
buffer for transmitting packets. You can easily adjust the window size in NT's
Registry, but the optimal size depends on your network architecture. Typically,
finding the best window size for your environment requires several network tests
to improve on the default NT Server settings. (For more information about this
topic, see Bill McLaren, "13 Tips for Optimizing Internet Information
Server," April 1997.)
The techniques I've described ensure that the network I/O subsystem on NT
Server isn't the network bottleneck. But remember that many facets of a
network's architecture can cause a network bottleneck. These facets include
client configuration, application design, the physical network, network
protocol, and network devices (e.g., routers, hubs). Many tools are on the
market for network analysis, including network sniffers and network managers
such as Unicenter TNG (Computer Associates), Open View (HP), and Works (Cisco).
Disk I/O
To tune disk I/O performance under NT Server, you can purchase additional
drives and internal/external RAID units, if the server hardware can support
them. Short of adding hardware, you can tune the disk subsystem in other ways.
In particular, review your Perfmon logs regularly to be sure that you have
evenly distributed the disk subsystem's load. A common source of contention is
running all applications on the root NT Server disk, which can quickly become a
bottleneck.
To find out if you have disk bottlenecks, first eliminate the possibility
that the problem is due to insufficient memory. You can easily confuse a disk
bottleneck with paging file activity when you have a memory shortage. To help
distinguish between disk activity related to the virtual memory manager paging
to disk and applications using the disks, keep the paging file systems on
separate dedicated disks. This technique simplifies using Perfmon to distinguish
which busy disks are not associated with paging activities. With Perfmon, review
the Avg. Disk Queue Length and % Disk Time counters under the LogicalDisk object
for each disk of interest. See Table 1 for definitions of these counters.
(Remember to turn on the disk counters with the diskperf-ye command, as Part 1
of this article described.)
Order Your Fundamentals CD Today! Register today for your in-depth copy of one of three Fundamental CDs on the following topics – Exchange, SQL, and SharePoint.