Profiling network usage

As I said earlier, an application that communicates with third-party programs such as databases, caches, web services, or an authentication server can be slowed down when those applications are slow. This can be tracked with a regular code profiling method on the application side. But if the third-party software works fine on its own, the culprit may be in the network.

The problem might be misconfigured network hardware, a low-bandwidth network link, or even a high number of traffic collisions that make computers send the same packets several times.

Here are a few elements to get you in. To find out what is going on, there are the following three fields to investigate at first:

If you want to delve further into network performance issues, you may also want to read Network Performance Open Source Toolkit, Wiley by Richard Blum. This book exposes strategies to tune the applications that are heavily using the network and provides a tutorial to scan complex network problems.

High Performance MySQL, O'Reilly Media by Jeremy Zawodny, is also a good book to read when writing an application that uses MySQL.

Let's take a look at tracing network transactions in the next section.