There is a service we wrote available at AreWeDown.com that will measure the network health of TCP connections. It does this by issuing two insert commands via a MySQL ODBC connection from a system service at 30 second intervals. The idea is that this can be loaded on XP workstations at client sites on the other side of a WAN/VPN for an internal network. As an examble, here is the resultant database entries showing a congested network on 10.10.10.0 vs. a nice network on 10.50.100.0:
mysql> select * from stats; +---------------------+-------------------+------+ | tims | host | time | +---------------------+-------------------+------+ | 2005-08-06 05:08:47 | are@10.10.10.11 | 100 | | 2005-08-06 05:08:47 | are@10.50.100.190 | 100 | | 2005-08-06 05:08:47 | are@10.50.100.190 | 101 | | 2005-08-06 05:08:47 | are@10.10.10.11 | 101 | | 2005-08-06 05:09:13 | are@10.10.10.11 | 100 | | 2005-08-06 05:09:13 | are@10.10.10.11 | 101 | | 2005-08-06 05:09:17 | are@10.50.100.190 | 100 | | 2005-08-06 05:09:17 | are@10.50.100.190 | 101 | | 2005-08-06 05:09:46 | are@10.10.10.11 | 100 | | 2005-08-06 05:09:46 | are@10.10.10.11 | 101 | | 2005-08-06 05:09:47 | are@10.50.100.190 | 100 | | 2005-08-06 05:09:47 | are@10.50.100.190 | 101 | | 2005-08-06 05:10:17 | are@10.50.100.190 | 100 | | 2005-08-06 05:10:17 | are@10.50.100.190 | 101 | | 2005-08-06 05:10:18 | are@10.10.10.11 | 100 | | 2005-08-06 05:10:19 | are@10.10.10.11 | 101 | | 2005-08-06 05:10:46 | are@10.10.10.11 | 100 | | 2005-08-06 05:10:46 | are@10.10.10.11 | 101 | | 2005-08-06 05:10:47 | are@10.50.100.190 | 100 | | 2005-08-06 05:10:47 | are@10.50.100.190 | 101 | | 2005-08-06 05:11:16 | are@10.10.10.11 | 100 | | 2005-08-06 05:11:16 | are@10.10.10.11 | 101 | | 2005-08-06 05:11:17 | are@10.50.100.190 | 100 | | 2005-08-06 05:11:17 | are@10.50.100.190 | 101 | | 2005-08-06 05:11:47 | are@10.50.100.190 | 100 | | 2005-08-06 05:11:47 | are@10.50.100.190 | 101 | | 2005-08-06 05:11:49 | are@10.10.10.11 | 100 | | 2005-08-06 05:11:50 | are@10.10.10.11 | 101 | | 2005-08-06 05:12:17 | are@10.50.100.190 | 100 | | 2005-08-06 05:12:17 | are@10.50.100.190 | 101 | | 2005-08-06 05:12:21 | are@10.10.10.11 | 100 | | 2005-08-06 05:12:23 | are@10.10.10.11 | 101 | | 2005-08-06 05:12:48 | are@10.50.100.190 | 100 | | 2005-08-06 05:12:48 | are@10.50.100.190 | 101 | | 2005-08-06 05:12:54 | are@10.10.10.11 | 100 | | 2005-08-06 05:12:57 | are@10.10.10.11 | 101 | | 2005-08-06 05:13:17 | are@10.50.100.190 | 100 | | 2005-08-06 05:13:17 | are@10.50.100.190 | 101 | +---------------------+-------------------+------+ 38 rows in set (0.00 sec) mysql> |
Notice how the difference between the 100 and 101 entries on 10.10.10.11 varies, sometimes taking up to 3 seconds? This shows that the network is quite overworked. This is slightly different than simply measuring latency via a test like ICMP/Ping. This is an actual TCP connection from the client perspective. If the network connection is bad enough, of course, nothing gets through. The utility, source code, and installation instructions are all available here.