Tuesday May 17, 2005

I often get asked about what are some good network programming books so I thought I would share my "short" list with you:

Unix Network Programming Series TCP/IP Illustrated Series Internetworking with TCP/IP Series Other Networking Books
Darrin

Saturday May 14, 2005

Performance is a critical part of Solaris' lifestyle (along with quality, scalability, etc.) and we have some interesting performance mantras that I thought I would share:

    "Shift focus from the avoidance of small regressions to pursuing significant performance gains." (Various)

    "If a competing OS is faster, it's a Solaris bug and it's important." (Phil Harman)

    "If you don't measure it, it will regress." (Various)

    Corollary: "That which is measured, improves." (Bart Smaalders)

    "If you can't or don't measure it, you can't improve it." (Various)

    Related: "You can't fix what you can't see." (Bart Smaalders)

    "You don't want to tune your car's performance while you are driving the down the road, then why would you want to do it with a computer. Great out of the box performance is critical." (Bart Smaalders)

    Related: "They took the spark advance off the steering column a long time ago." (Bart Smaalders)

Darrin

Friday May 13, 2005

Strong customer interaction has always been important part of Sun's culture. Not only does it occur at the executive level but it is also strongly encourage at the individual contributor level. My team has taken that to heart and has been aggressively seeking out customers no matter how large or small to achieve several goals -- telling them about Solaris 10, about networking performance, and most importantly listening to their issues and needs. This however can be a humbling experience.

One example of this was an early roadshow to companies in Ireland and the UK to showcase Solaris 10, the enhanced high-performance TCP stack called FireEngine, and some of the future networking performance projects that we had in the pipeline. Universally all the customers thought it was all great stuff but during the Q&A session we kept running across the same question..."But does it help our network back-up performance?".

We had great performance data on numerous industry benchmarks that we could point to but nothing on something so basic that we hadn't thought about. It was certianly a bit humbling to say "We'll have to get back to you on that." Fortunately, we could follow-up with some great performance wins in this area but in terms of increased throughput and reduced CPU utilization. This is a great example of how it is important to really listen to customers and to create ongoing relationships that allow the free flow of information.

Just as a side note you may be asking why the performance of the network back-ups are so important. In a nutshell, many of our customer's business is transaction based (e.g. # of webpage hits, stock trades, downloads, bank transactions, database queries, etc.) with the performance of those transactions being paramount to business success or failure. Back-ups however are a negative impact on the bottom line given that it takes networking and system bandwidth away from those transactions.

More on the humbling insight of customers to come...

Darrin

Tuesday Apr 26, 2005


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

This blog is Copyrighted 2008 by Darrin Johnson.