NIC load-balancing software solutions

The computer industry has seen processor speed, memory size, hard disk capacity, and system bus speed increase at blinding rates, and NICs are consistently the snarl that creates system and network traffic jams. As network traffic increases, the bottleneck that results from NICs causes network collisions and frustrated users.

Installing a second NIC in a server can help alleviate some performance bottlenecks. However, network traffic collisions will slow performance because your server's transport driver recognizes only the primary NIC. Alternatively, you can segment network traffic and spread it across multiple NICs, but you lose load balancing and redundancy. The ideal solution is to spread your network traffic across multiple NICs and create larger data pipes without breaking your company's budget.

This ideal is possible, thanks to IP Metrics Software's NIC Express 2.0 and NSI Software's Balance Suite for Windows NT 2.71. These solutions let you combine two or more LAN connections (i.e., ports) to provide a high-performance data pipe theoretically as large as the total capacity of the NICs you're using. To accomplish this increased speed, these super NIC arrays direct output through any available NIC port rather than saturate individual NICs. In both products, a network device interface specification (NDIS) driver balances the load of the multiple LAN connections.

The benefits of using super NIC technology include increased data throughput and stable requests load balancing. In addition, super NICs provide fault tolerance, so if one LAN connection fails, the system removes that connection from the NIC array and dynamically load-balances the remaining connections. In some cases, the failed connection dynamically rejoins the NIC array when it comes back online; in other cases, you must manually bring the failed connection back into the NIC array.

The Test Environment
To test each software package, I used a Digital 3000 system with one 300MHz Pentium II processor, 192MB of RAM, 512KB of Level 2 cache, and two 4.2GB hard disks. I configured the test server with an Adaptec Duo 64-bit quad-port NIC that uses only one PCI slot but provides four separate LAN connections. Next, I set up two 350MHz Pentium II client systems, each with an Adaptec 62011 10/100 NIC and 64MB of RAM. I set up a workgroup of clients that were running TCP/IP and attached the two workstations and the test server to a Compaq Netelligent switch.

In addition, I installed Windows NT Server 4.0 Service Pack 5 (SP5) on each workstation. If you have SP3 or earlier installed on each workstation, you need to download a post-SP3 NDIS patch from Microsoft's FTP site (ftp://ftp.microsoft.com/bussys/winnt/ winnt-public/fixes/usa/nt40/hotfixes-postsp3/ndis-fix). This patch corrects a memory leak in Microsoft's NDIS driver that can result in a blue screen. Microsoft includes this patch in SP4 and SP5.

I used PowerQuest's Drive Image Pro 3.0 to create an image of my test system before I installed Balance Suite. After I finished testing Balance Suite, I used the image to restore a fresh copy of my system so that I tested NIC Express with an identical configuration. Finally, to measure the I/O, I installed Network Associates' NetXRay on a separate system. NetXRay provided the data transfer per second for each NIC via its unique media access control (MAC) address and by IP address.

The Tests
To test NIC Express and Balance Suite, I evaluated several criteria, which Table 1, page 132, shows. I considered each product's price, which NICs the vendors had tested, and which protocols and OSs each product supports. I looked at the products' ability to automatically remove a failed LAN connection from the NIC array and automatically rejoin an operational LAN connection to the NIC array. I identified whether the products support segmenting a virtual NIC into two or more separate LAN connections (segmenting lets you achieve greater throughput and fault tolerance for various departments or users within an organization). I also evaluated whether each product includes a built-in monitoring tool, Web-based monitoring functionality, and alert options such as email, SNMP messaging, or paging. Finally, I tested the products' installation and configuration process, documentation, and technical support.

After I evaluated the software packages' features, I used Ganymede Software's Chariot capacity-measurement tool to test each product. Chariot lets you run scripts that generate various workloads to measure throughput and transaction rates between two systems. Chariot sends scripts to the endpoints from a separate test server that monitors test data in realtime. I ran Chariot's File Send, Long Connection test, which emulates one client system sending files to the test server and receiving a confirmation. I increased the file size from 100KB to 3MB, changed the number of time records from 100 to 500 records, and saved the changes. These changes increase the load that the client sends the server and increase the duration of the test.

Balance Suite for Windows NT 2.71
Balance Suite comes on one CD-ROM with a thin user manual, which lists NICs that NSI has qualified for use with Balance Suite. This list doesn't include all the NICs that Balance Suite supports, only the NICs that NSI has tested and recommends for use with Balance Suite. My server's NIC wasn't on NSI's list, but I was able to use it with Balance Suite.

NSI has greatly improved Balance Suite's installation since I reviewed this product in 1998. (To read my review of Balance Suite for Windows NT 2.5, see "Load Balancing Your NICs," November 1998.) Instead of requiring you to manually set up the Balance Suite virtual adapter, version 2.71 lets you simply double-click the CD-ROM's setup file, which leads you to an easy-to-follow wizard. The Balance Suite driver appears to NT as a new virtual adapter and disables the bindings between existing adapters and TCP/IP. In addition, the setup file pulls existing TCP/IP settings into an easy-to-read document that you can print for future reference. Next, the setup file installs the NSI Balance Network Adapter and prompts you to configure the adapter's IP address and other parameters. I provided an IP address from my test network, clicked OK to complete the configuration, and clicked OK again to reboot the system. After the system reboots, Balance Suite automatically loads and starts operating, and the software automatically binds all NICs (in my case, all four ports on my multiport NIC) installed in the system to the NSI Balance Network Adapter.

By default, Balance Suite selects the Enable Redundancy check box in the NSI Balance Settings dialog box, which shows each LAN connection in the virtual pipe. The software lets you specify how often the system checks each LAN connection and how many times it will try to make a LAN connection before failing. Finally, you can select one or more network types (i.e., IP, IPX, or NetBIOS/IPX) that you want to monitor and load-balance. In addition to binding NICs for use with the NSI Balance Network Adapter, you can unbind NICs so that you can use them for applications other than Balance Suite's super NIC data pipe. This feature is easier to set up with Balance Suite than with NIC Express, which requires you to wait until after you set up your virtual NIC before you can add a separate NIC for private communication.

To ensure that I had properly set up the software, I pinged the Balance Suite virtual NIC IP address several times. The pings were successful, and the virtual NIC worked without any problems.

With the high-performance virtual NIC in place, I started Chariot's File Send, Long Connection test and waited. NetXRay let me watch the test immediately generate load against the virtual NIC. I toggled between viewing the data that the IP address and the NIC MAC address filtered. Throughout my test, the virtual NIC operated without any problems, and each LAN connection balanced the load. The virtual NIC performed flawlessly and handled all incoming and outgoing data transfers, achieving a maximum throughput of 308Mbps when I combined all four ports on my NIC into one data pipe.

I removed one of the LAN connections from the network switch, and within 1 second the Balance Suite monitor updated the statistics and graph windows to show that the connection had failed. The other three LAN connections balanced the remaining load without any noticeable difficulty. I plugged the cable for the failed connection back into the switch, and within a few seconds the software automatically rejoined the LAN connection. I removed cables from the switch one, two, and three at a time, and the software continued to process the data with little interruption, although the transfer rate dropped in proportion to the number of cables I unplugged.

Balance Suite lets you segment your NICs into multiple virtual adapters. The easy-to-follow documentation outlines the process in which you create segments and assign and unassign NICs. To assign a NIC, I opened the Control Panel Network applet, clicked the Protocols tab, selected the NSI Balance Network Protocol, and clicked Properties. When you set up Balance Suite, the software creates a default segment called NSI Balance Virtual Adapter that contains all the system's NICs. You can rename or change the segment's properties by right-clicking the segment's name. I created an NT Lab segment and an Engineering segment and put two adapters in each segment, as Screen 1 shows. Finding where to create segments was difficult, but after I found the NSI Balance Configuration dialog box, unassigning NICs for private communication, adding newly installed NICs into a segment, and renaming each segment was easy.

Balance Suite also includes monitoring software that lets you verify that your system is optimally distributing IP and IPX traffic among the available LAN connections. This integrated monitor is an interesting feature, but I ran into several problems that were also evident in version 2.5. For example, you still can't select individual LAN connections and add them to the monitor one at a time. To work around this problem, Balance Suite lets you use NT's Performance Monitor to monitor Balance Suite data.

In addition, you can't adjust the statistics window at the bottom of the monitor. This shortcoming means you have to scroll to view all the LAN connections and their data.

Balance Suite was easy to configure and performed well in my tests but has some limitations. The monitor tool interface needs work: NSI needs to reconfigure the interface to display more than three NICs simultaneously. In addition, the version I tested offers more than 40 SNMP traps and Performance Monitor counters but doesn't offer pager or email notifications. Finally, Balance Suite doesn't offer Web-based monitoring, which is imperative for many organizations. Many competing products, such as NIC Express, offer this feature. NSI has added new functionality to Balance Suite, but the missing features might irritate systems administrators. You can download a 30-day evaluation copy of Balance Suite from NSI's Web site.

Balance Suite for Windows NT 2.71
Contact: NSI Software * 201-656-2121 or 800-775-4674
Web: http://www.nsisw.com
Price: Starts at $395 per server
System Requirements: Pentium processor or better, Windows NT Server 4.0 with Service Pack 3 or later, 32MB of RAM, 2MB of hard disk space, Two or more network interface cards

NIC Express 2.0
NIC Express provides load balancing and failover in a hardware-independent environment. The product uses an NDIS intermediate driver that performs all functions in NT's kernel mode. NIC Express comes on a CD-ROM that includes extensive online documentation in Adobe Acrobat format and two AVI instructional videos that provide a product overview and setup instructions.

I inserted the NIC Express CD-ROM into the system, and an installation browser window appeared that let me install any NIC Express component and view product documentation and white papers. NIC Express installs a new protocol and adapter but displays only the protocol to the user. You install the NIC Express protocol through the Control Panel Network applet the same way you add any protocol. When prompted, you enter the path to the NIC Express protocol service from the CD-ROM. When the installation completes, you see the NIC Express Setup dialog box, which lets you create multiple segments to which you can add NICs. You must add all the installed adapters to at least one segment. This requirement means that if you want to add a separate adapter for other purposes (e.g., private communications), you must install it after you complete the NIC Express setup. After I added all the adapters, I clicked OK and the system prompted me to reboot.

After I logged on to the server, I reentered the Network applet, opened the properties for TCP/IP, and reviewed the NIC Express Virtual Adapter's settings. The dialog box displayed the Adaptec's four ports as one NIC. This dialog box is also where you can change the virtual adapter's IP address. I successfully pinged the NIC Express Virtual Adapter's IP address to ensure it was working properly.

NIC Express provides a built-in monitoring tool that displays cumulative or per-second statistics for individual LAN connections or for the whole array. You can access the monitoring screen from the Network applet's Protocols tab. The color-coded status dialog box made monitoring the state of each adapter easy. This dialog box shows an icon that represents one of five states for each LAN connection, so you instantly know whether an adapter is working properly. The icons represent the following five states: the adapter is working properly, the adapter has stopped working for the first time since the server booted, the adapter has failed at least once since the last boot, the adapter is currently down and has been down before, and the adapter has failed more than three times in 1 hour. To reset a LAN connection's state after three failures (the default threshold is three, but you can set the threshold to as many as 9999 failures), click the failed adapter on the Advanced tab, then click Reactivate, as Screen 2 shows. You don't have to reboot your system to reactivate the failed NIC.

After I set up the high-performance virtual NIC, I started the Chariot test and used its monitor graph to track NIC Express' performance. Using NetXRay, I saw the test immediately start generating load against the virtual NIC. I toggled between viewing the data that the IP address and the NIC MAC address filtered. Throughout my test, the virtual NIC operated without any problems. Although the input on the primary NIC was initially high, the software eventually load-balanced and used all the NICs evenly. The virtual NIC performed flawlessly and handled all incoming and outgoing data transfers, achieving a maximum throughput of 311Mbps through the virtual adapter.

Next, I removed one of the LAN connections from the switch. Within 2 seconds, NIC Express identified and removed the failed LAN connection from the NIC array and began load balancing the incoming test data to the remaining three connections. When I reconnected the failed connection to the switch, the software took about 1 second to rejoin the connection into the array and rebalance the data across all four NICs. Regardless of how many LAN connections I disconnected, the software continued to service the incoming network requests as long as at least one connection was available. However, the software serviced the incoming requests at a slower speed than when all four NICs were connected.

NIC Express lets you create multiple network segments and add as many adapters as your system can hold to each segment. To set up two segments, I selected the Setup tab in the NIC Express dialog box, selected NIC 1 and NIC 2, and clicked Remove to remove NIC 1 and NIC 2 from the NTLAB segment. Next, in the drop-down text box next to the Add button, I entered ENGINEERING for the new segment's name. I selected both NICs in the Available Adapters dialog box, then clicked Add, Yes to include them in the new segment. Finally, I clicked OK, clicked Finish, and clicked Yes to reboot the system.

The product's Enterprise Manager software lets you manage your NIC Express servers from a Web-based browser in one console. This feature saves you money otherwise spent on travel expenses, lets you proactively monitor all your servers, and helps you leverage your time to ensure the highest availability for your users and clients.

The product supports SNMP traps, which notify you when a LAN connection fails or comes online, and NIC Express writes events to NT's event logs. However, I was disappointed that NIC Express didn't support other alert tools, such as pager or email notification.

NIC Express was easy to install and configure, and I like the ability to create multiple segments with the system's available NICs. This tool is flexible and increases the throughput and fault tolerance of your network servers, and its Web-based monitoring with Enterprise Manager strengthens the software's usability and makes it the best value for NIC load-balancing software. Although high-speed networking is getting cheaper, it's still cost-prohibitive for most companies. You can download a fully functional, 30-day evaluation of NIC Express from IP Metrics' Web site.

NIC Express 2.0
Contact: IP Metrics Software * 817-358-1007 or 877-358-1007
Web: http://www.ipmetrics.com
Price: Starts at $349 per server
System Requirements: Pentium processor or better, NT Server 4.0 with Service Pack 3 or later, 32MB of RAM, 2MB of hard disk space, Two or more network interface cards

The Verdict
After spending many weeks reviewing these tools, I concluded that both are excellent NIC load-balancing products. Thanks to wizards and helpful documentation, setting up each product was easy, and each product was ready for testing within 10 minutes after I started the installation process. And both products did a great job of load balancing the test loads I ran against them.

Balance Suite lets you segment NICs, but this product has problems with the amount of data that you can view simultaneously in the Balance Suite Monitor. In addition, Balance Suite doesn't offer Web-based monitoring.

NIC Express had almost everything I wanted from a software NIC load-balancing solution. Although the internal monitor is attached to the Network applet, you can use NIC Express Enterprise Manager to monitor your servers from a Web browser. In addition, NIC Express produced performance numbers that were slightly faster than Balance Suite's performance numbers.

You can't go wrong choosing between Balance Suite and NIC Express because they offer similar features, but NIC Express' Web-based monitoring feature tips the scale in the product's favor. Regardless of which product you choose to leverage fast performance from your new servers, providing a virtual NIC that can handle the servers' I/O makes sense.