Alas it is time to step out of the shadows as a blog lurker and draft my inaugural blog entry. The topic is simply "What is real networking performance?".

What does the word "performance" mean to you? Some may use words like endurance, speed, reliability, etc. as synonyms. In the networking world, most would see performance as how fast we can push data over the wire, often using descriptors such as 10 megabit, 100 Mb, 1 Gigabit, or even 10 Gigabit. Others may use less precise language such as dial-up, DSL, cable modem, satalite, T1, T3, etc. Networking performance however is not just a simple matter of how fast data can be pushed over a particular networking media.

Networking performance is a combination of three factors -- throughput, latency and utilization. Throughput is the classical speed of the network with 10 Gigabit being faster than 1 Gb, 100 Mb, and 56 Kb). Clearly this is in import part of the performance equation. Latency however is also critical part of the equation because the overhead can have a significant impact on the networking performance. One need only use the "ping" command to see the packet latency between two machines over different types of distances, network media, through various types of networking gear, with packet loss, jitter, etc. Just think of talking to somebody face to face versus talking to that same person deep in the Amazon forest over a bad phone connection.

Utilization is also an imporant measure of performance although it may be a bit controversial. Utilization in this case is simply the resource costs required to achieve the performance. We can use CPU utilization as a simple measure on the impact of performance. Not so long ago it would take a 100% of a CPU to saturate (e.g. run at full throughput)a 1 Gigabit connection but today we have measured CPU utilization as low as 8% to saturate the same connection. The utilization (and there performance) improvement is the result of a better network stack, faster CPUs, improved NIC technology, etc. Keeping throughput and latency constant the utilization improvement yields a positive performance increase.

Remember: Performance = Throughput + Latency + Utilization

Don't want to be too long winded so I will save deeper discussions on each of these for later blogs.

- Darrin

Comments:

I would just like to echo the bit about utilization. The one thing we noticed on one of our V880 fileservers with Solaris 10 was not that the network went any faster (we were filling up the gigabit out already), but that the server - which previously had been hammered hard - was cruising along with oodles of spare CPU cycles to do other work.

Posted by Peter Tribble on April 27, 2005 at 12:35 AM PDT #

I would always qualify "utilization" with "CPU" (i.e. "CPU utilization"); otherwise people might be confused into thinking you're talking about how much of the Gbit (10Gbit, whatever) pipe you're using up... but yeah, it's easy to lose track that all those figures are useful. Another useful one is probably "packet loss", due to errors on the channel, errors in the driver, overflow/overload of the driver/system, collisions on shared segments, etc. The wrong kind of packet loss can manifest as really bad performance problems.

Posted by Dan Mick on April 28, 2005 at 09:35 PM PDT #

Post a Comment:
Comments are closed for this entry.

This blog copyright 2008 by darrin