You've probably read about Facebook and Google providing internally developed tools to the open source world. Often you'll see references to such tools during conferences or presentations during developer meetups.
One such tool you may not have heard of isn't from Google and it isn't from Facebook -- it's from Yahoo. Back in May, Yahoo released the Yconalyzer tool via the Yahoo Developer Network. Let's take a closer look at this tool and how you can start using it immediately for your own needs.
Yconalyzer and You
From the Yconalyzer sourceforce page:
Yconalyzer is a low-overhead pcap utility that provides a bird's eye view of traffic on a particular TCP port, displaying a distribution of duration, volume and throughput over all connections while being able to narrow down to a connection as well.
At this point you might be saying to yourself "oh, it's like tcpdump". While tcpdump is a valuable tool, you should still take a look at Yconalyzer.
So who uses Yconalyzer? You can see Yconalyzer referenced in presentations from very high profile groups like the Twitter web engineering team [PDF].
Some of the metrics you can gather from using Yconalyzer include:
- How many client connections are taking too long?
- What specific client IP addresses had connections that lasted too long?
How can you use Yconalyzer? Here are some examples of use cases:
- Review connections where clients are sending less than a specific number of bytes
- Review connections where the server is sending more than a specific number of bytes
The initial release of Yconalyzer has been updated to accommodate more environments and ease the process of getting started. Specifically, additions include fixes for Ubuntu environments (gcc-4.4.1) as well as GNU auto-build and configure utilities. For those running RPM as their package manager of choice there is even a spec file included.
To get started simply download the Yconalyzer source code from sourceforge and follow the README and INSTALL files. You should expect to see output such as that shown in the example below for a CentOS 5.5 build environment.
Next, let's verify we can capture traffic for a few seconds.
While this simple example is for web traffic you'll find Yconalyzer useful for any TCP performance metric gathering.
Will you be using Yconalyzer to test your own environments? Let us know in the comments below!