How to get Web Polygraph working under Linux with 1500 IP address es

From: Tash Hepting (
Date: Sat Dec 04 1999 - 17:13:28 MST

        Thought this may help a few people, as I spent quite a bit of time
working through the issues in getting this working. This is the compilation
of my notes on how to get it working - there may be steps in here that are
unnecessary, but I haven't had enough time to track them down. I'm
relatively new to Linux (Mostly an NT guy who knows some general Unix) and
would greatly appreciate any feedback. I also haven't done any verification
of the statistics generated by Polygraph in this configuration - my main
interest in the tool so far has been to generate large numbers of http
sessions from as many distinct IP addresses as possible.

Setup Linux PCs
        Make sure G++ and gmake are installed on your linux box, as well as
the kernel source code.
        I used Redhat Linux 6.1 (kernel 2.2.12-20) which does not _require_
recompiling of the kernel if you can run the utility as root.
        My test PCs are Celeron 466Mhz w/ 64MB RAM. I am using the Intel
ProManage 100+ Ethernet card. Memory seems fine at 64MB, but the processor
is pegged most of the time on both boxes.

Get Web Polygraph:
        Download the Source files from
(v2.2.5 is what I have working).
        gunzip and untar the source code
Raise maximum # of file descriptors for 2.2.12-20 kernel
        edit /usr/include/linux/fs.h so that INR_OPEN and NR_OPEN are higher
than 1024 (I used 65536, lots of people on the mailing list use 16384)
        edit /usr/include/linux/limits.h so NR_OPEN is the same as the
NR_OPEN above
        edit /usr/include/bits/types.h so FD_SETSIZE is the same as NR_OPEN
        As root in the shell you are going to compile Polygraph in, type
"ulimit -HSn ######" where #### is the same as NR_OPEN above
        type "echo ####### > /proc/sys/fs/file-max" where ##### is the same
as NR_OPEN above

Configure the distribution
        In the /installpath/polygraph directory, run ./configure
                You should see the maximum number of file descriptors
listed, if it is not the same as NR_OPEN above, double-check your work.

        run "gmake all" to build the utility. polyclt and polysrv as in the
polygraph/src directory.

Add IP aliases
        read /etc/sysconfig/network-scripts/ifup-aliases to learn about
limitations of the aliases scripts. Remember, keep each range file within a
single 24bit subnet mask range
        create /etc/sysconfig/network-scripts/ifcfg-eth0-range0 text file
with to setup aliases. I have used 6 ranges, with 250 IP addresses in each
range successfully for a total of 1500 client IP addresses.
        run "./ifup-aliases eth0" from the /etc/sysconfig/network-scripts

Add Robots
        edit the workload file and replace the IP address for the robots
with a comma delimited list of ranges:
'','','' etc...
        Be sure to increase the number of IPs for the servers also. 1500
robots banging on one one polysrv thread doesn't work...

Run the workloads
         I've got 1500 robots (1pc) requesting from 1500 servers (1pc)
working ok in the lab with the script and a smaller 1Byte content
size, but occaisionally get "dst cache overflow" error on the server
console. Not sure what this means. Smaller numbers of servers (245) don't
generate any errors at all.

Tash Hepting 408-579-2934
SQA Department
Extreme Networks

This archive was generated by hypermail 2b29 : Tue Jul 10 2001 - 12:00:10 MDT