Hello All, At IBM research we have developed several enhancements for SIPp that improve performance and flexibility. I have attached a .tar.gz of the patches and a "series" file that lists them in the order they should be applied (against the 2006/10/04 snapshot). I've included a brief description of each of the patches below.
Charles
These patches allow SIPp to be used for our VoIP user-model based benchmark.
There are some internal scalability improvements that do not affect usage, and
also a few minor external changes to increase the flexibility of reporting and
pauses.
To enable distributed pauses, you must compile with the GNU Scientific Library
(GSL). As SIPp does not have an autoconfiguration script, you create a file
named "local.mk" with the following lines:
EXTRACPPFLAGS=-DHAVE_GSL
EXTRACFLAGS=-DHAVE_GSL
EXTRALIBS=-lgsl -lgslcblas
You can obtain GSL from http://www.gnu.org/software/gsl/. GSL RPMs are
also available on many distributions, including RedHat 7-9, Fedora 1-5,
Redhat AS 4, and SuSE 9.X and 10.
The external changes to SIPp are one new command line option (-users), which
specifies a fixed number of users; the 'Q' key stops SIPp in its tracks (just
like control-C); and several modifications to the XML scenario file:
- The <pause /> item has three new types of pauses: normal, lognormal, and
exponential. To specify a statistically distributed pause add its name as a
parameter with a value (e.g., <pause normal="true" ... />).
- Normal pauses require a mean and standard deviation. For example:
<pause normal="true" mean="60000" stdev="15000" />
Provides a normal pause with a mean of 60 seconds (i.e. 60,000 ms) and a
standard deviation of 15 seconds. The mean and standard deviation are
specified as integer milliseconds.
- Lognormal pauses are specified in terms of the mean and standard deviation
of the normal distribution that is exponentiated. For example:
<pause lognormal="true" mean="12.28" stdev="1" />
Creates a distribution's whose natural logarithm has a mean of 12.28 and a
standard deviation of 1. The mean and standard deviation are specified as
double values (in milliseconds).
- Exponential pauses require an integer mean. For example:
<pause exponential="true" mean="900000" />
Creates an exponentially distributed pause with a mean of 15 minutes.
- Each send or receive message may start and end a response time duration.
Unmodified SIPp uses a single RTD value per call, thus the XML used a boolean
value to indicate starting an RTD (with start_rtd) and ending an RTD with
(rtd) as follows:
<send start_rtd="true">
...
</send>
<recv response="200" rtd="true" />
Our new SIPp supports the same syntax, mapping "true" to RTD 1. We also
support an arbitrary number of RTD timers (determined at compile time,
currently 5). To use a new timer, specify start_rtd and rtd as an integer
from 1 to 5. You can view the new RTD timers by pressing 5, 6, 7, and 8.
- We also support five generic message counters. Simply add the new "counter"
parameter to a send or receive (from 1 to 5). When that message is
processed, we add one to the counter. For example:
<recv request="INVITE" counter="1" />
..
<recv request="BYE" counter="2" />
Increments counter 1 when the INVITE is recieved and counter 2 when the BYE
is recieved.
- The <nop /> item can be used for rtd, start_rtd, and count.
These patches apply to SIPp 2006-10-04. You can use the quilt tool to apply
these patches (http://savannah.nongnu.org/projects/quilt/), or manually apply
them in the order listed in series (the following descriptions are also in
order):
- dynamicpeer
Use a dynamically allocated peer tag, this reduces the memory usage per
call by an order of magnitude.
- pausecleanup
Clean up the handling of the pause keyword.
- distpause
Normal, lognormal, and exponentially distributed pauses. These pauses
are based on GSL, and the infrastructure is there for any type of
pause that someone wants to add.
- rtd
Allows multiple response times to be counted.
- counter
Increments a generic counter on a recieve or send.
- runqueue
Divides calls into paused calls and running calls. Paused calls are
managed using a timing wheel ala Varghese's 1996 article.
- users
The -users option begins users calls at startup, and maintains a fixed
number of calls. Only half of a timer cycle can be used for call
startup.
- hardquit
The 'Q' key (or control thread) sends a SIGINT to itself, thus causing
SIPp to quit immediately.
- nopcount
Allow nops to be used for RTDs and counts.
- buffsize
Allows the socket receive buffer to be increased on the command line.
- lastheaderstrings
Uses a custom version of tolower for strcasestr2.
Eliminates the need for memset of large strings (e.g, there was a 20KB
memset for each message processed).
- rsaport
Uses port 5060 by default if the -rsa option does not specify a port.
- closefdsinbg
Close all file descriptors after we create the child process.
- printscreenkey
'S' key dumps the screens to a file (this can be used over the control
socket, a signal cannot)
- stdev
Add a standard deviation column for call length and response time
- rateincrement
Increase the rate from n to m at some interval.
- authtweak
Check dialog_authentication before running a strstr on every message.
- retransstat
Add Retransmissions(P) and Retransmissions(C) columns to the stat file.
- tcpwait
Allow EAGAIN to be handled gracefully more than once.
- openloop
Allow -l 0 to be specified so that a UAC scenario can act as an open
loop workload generator.
(See attached file: sipp-patches-2006-10-04-ibm1.tar.gz)
sipp-patches-2006-10-04-ibm1.tar.gz
Description: Binary data
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________ Sipp-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/sipp-users
