Why pay more for a smart NIC?
Smart network interface cards that off-load network transactions from server CPUs are drawing interest as vendors claim that giving servers more power is as simple as swapping your NIC.
We tested this performance boosting theory by taking a look at one of these smart cards from Alacritech.
To measure the gains the Alacritech smart card yields, we ran our standard server performance tests with and without the Alacritech NIC. There was an improvement of between 2.5% and 16% when the Alacritech four-port NIC was stacked up against four Intel Pro100+ NICs. Not a bad improvement, but whether the improvement is worth the extra money -- the Alacritech cards cost twice as much as the Intel cards that came with our server -- depends on how you use your server and how badly you need better performance.
The biggest performance gain occurred with large file server transfers; while there was virtually no gain when we tested lots of small, database transactions.
The Alacritech NIC comes in two- or four-port configurations -- the Alacritech 100x2 and 100x4, respectively. We tested the Alacritech 100x4. Both products support 10M or 100M bit/sec Ethernet in half- or full-duplex mode. At the time of testing, the Alacritech NICs supported Windows NT, with Windows 2000 and Linux drivers in the works.
The Alacritech NIC implements TCP in hardware on an Application Specific Integrated Circuit the company calls an Internet Protocol Processor (IPP). This IPP sends a processed TCP stream directly to the server RAM, reducing the amount of work handled by the server's processor.
Because the code to implement TCP is complicated, Alacritech reduced the code to handle only TCP sessions once they were set up. The server's CPU handles all other TCP processing, including TCP session setup and teardown, timeouts and error conditions. Alacritech justifies the smart card not off-loading all TCP processes by noting the TCP exceptions make up as little as 5% of network traffic.
The Alacritech NIC does nothing to help User Datagram Protocol (UDP) or any other non-TCP transaction performance. For example, the Alacritech card won't help your server with most streaming video, multicast or voice-over-IP applications.
Nonetheless, Alacritech claims this architecture improves server performance by significantly reducing the number of CPU interrupts.
Although most of our performance testing showed little or no improvement in server performance with the addition of the smart NIC, a couple of our tests -- those that simulate large file server transactions -- did show a significant performance gain. If your server operates under the conditions represented by these tests, the additional cost of the Alacritech may be justified.
The network file read test showed the largest improvement in performance, with a 16% increase with a single-CPU server and a 14% increase with a four-CPU server. This degree of performance increase would be seen in server applications where large files are shared between many users. We checked NT's performance monitor to see the difference in CPU utilization on the single-CPU server and the four-CPU server. We saw about 70% less CPU utilization with the Alacritech than with the Intel for both server CPU configurations.
Our random file read/write test showed a 9% increase with a single CPU server and a 4% increase with a four-way server. Our random read/write test applies in real world situations when you have a database server with large transactions and minimal CPU utilization per transaction. Our sequential file read/write test showed about a 3% increase in performance for the single- and four-processor server. Our sequential read/write test applies in real world situations when you are supporting typical file server or Web server transactions. Note the decrease in performance gain as the number of server CPUs increases. This shows that as long as the NIC is not pegged, an increase in CPU horsepower can offset the Alacritech performance gains.
Our database read test showed no noticeable difference in performance. In environments where lots of small database transactions and large CPU-hogging transactions appear on your server at the same time, the Alacritech may not be much help. This is most likely due to the large number of TCP sessions being set up and torn down.
More points to consider
Alacritech provides features needed for a server NIC, including speed and duplex configuration controls, speed and duplex autonegotiation, monitoring instrumentation, diagnostics and port teaming.
The management features for the Alacritech NIC include a number of NT performance monitor objects to determine if the NIC is working properly. There is also a set of NIC diagnostics utilities to troubleshoot NIC hardware problems.
Installation couldn't be easier. Go to the NT network control panel, add the adapter driver from the CD-ROM provided with the NIC, and reboot. After reboot, set the speed and duplex settings in the adapter properties box and then set the IP address in the Alacritech TCP/IP off-load driver in the protocols properties box. Reboot again and you're ready to go. The Alacritech drivers coexist with the Intel drivers without any problems.
The documentation provided with the NIC is done well. The company even provides a methodology to determine if the NIC is giving your server a performance boost.
The Alacritech costs twice as much as the Intel NICs per port. Another $70 per port for the potential of a 15% performance boost may be money well spent. But be wary that the Alacritech cards don't produce the same price/performance gains in all server environments.