Revisiting Web100 / Web10g

During a recent set of customer queries around network latency and jitter I was reminded of the subjectivity of complaints

  • It feels slow
  • My calls stutter
  • It must be your fault 😉

Well, how do we try reduce the guesswork – we revisit the brilliant Web100 project – now migrated to the Web10g project. This adds TCP instrumentation to the linux kernel and provides simple client tools to do some network assessments. While the tools are not meant to be an all encompassing solution it provides some decent metrics for analysis and debugging of customer links.

So, lets get a web10g kernel running under Debian Squeeze (yes I do shit as root – that’s my choice – it may not be yours) 😉

apt-get install linux-source-2.6 fakeroot bzip2 kernel-package libncurses-dev
sudo apt-get build-dep linux-source-2.6.32
cd /usr/src/
tar xjvf linux-source-2.6.32.tar.bz2
ln -s linux-source-2.6.32 linux
cd linux
make clean
make mproper

I wish to keep the config the same as the current kernel, so copy in running kernel’s config

cp /boot/config-`uname -r` .config

Now lets fetch the patch for the kernel and patch it

cd /usr/src
wget http://web100.org/download/kernel/2.5.27/web100-2.5.27-201001301335.tar.gz
tar zxpf web100-2.5.27-201001301335.tar.gz
cd /usr/src/linux
patch -p1 < ../web100/web100-2.6.32-2.5.27-201001301335.patch

Grumble – so 2 Hunks failed – lets fix manually – now that that’s done…. lets compile this stuff 😉

make menuconfig

Enable the web100 items under Networking (as per the web100 README)

Save the config, then compile it (after getting some more performance with concurrency)

export CONCURRENCY_LEVEL=8
make-kpkg clean
fakeroot make-kpkg --us --uc --initrd kernel_image kernel_headers

With the build done, install the .deb’s from /usr/src and remember to tell debian to boot from your new kernel!

Now to Add the Userspace tools:

Get the latest version of the userspace tools from http://web100.org/download/ compile and install it. Python dev libraries are needed as well so lets add that too.

apt-get install python python-dev
axel http://web100.org/download/userland/version1.8/web100_userland-1.8.tar.gz
tar zxpf web100_userland-1.8.tar.gz
cd web100_userland-1.8
./configure
make
make install

Now lets get NDT installed and deployed

Download from:

echo /usr/local/lib > /etc/ld.so.conf.d/web100.conf
ldconfig

If you don’t have libpcap.so on your system add it:

apt-get install libpcap0.8 libpcap-dev

Get java sdk onto the platform. I’m trying this with the openjdk packages instead of Oracle’s for now

apt-get install openjdk-6-jdk

Now lets get NDT installed and deployed

Download from http://software.internet2.edu/sources/ndt/ looking for the latest version

tar zxpf ndt-3.6.4.tar.gz
cd ndt-3.6.4
./configure
make
make install

At this point you can launch a test server for NDT to get some baseline customer testing done:

http://apollo.neology.co.za:7123/

I’ll add more details as and when

 

 

Permanent link to this article: https://www.vdvyver.net/revisiting-web100-web10g/