Hi there,
Web Polygraph 2.6.0 is available. The change log is attached.
http://www.web-polygraph.org/downloads/
This is a major release that includes many new features and
improvements like support for domain names and load balancing tests.
While we have been using beta versions for some production tests, I am
sure that many bugs remain to be found. We expect to use a stable
derivative of 2.6.0 for the upcoming switch/cache-off competitions.
There have been a few minor modifications to old PGL structures
and concepts making old workload files incompatible. Please read or
search the change log for details.
Version 2.6.0 is the first release able to run simple tests (at
least) on MS Windows platform. InstallShield-ed binaries compiled on
W2K are available. We do not have much experience with running Windows
or Polygraph on Windows, but we hope that some users will find this
port useful.
Finally, Polygraph Web site has been moved to its own domain:
http://www.web-polygraph.org/. The new Web site comes with almost
complete and up-to-date PGL and workload documentation, searchable
mailing list archive, and other goodies. More documentation is
needed, of course. The old Web site at polygraph.ircache.net remains
operational, but will not be updated.
Thanks,
Alex.
------------- change log -----------------
2.5.5 -> 2.6.0
20010522
- changed licensing terms and added a not-for-publication clause
- updated README
- added DNS/FQDN client-side support; robots can now send
[non-blocking asynchronous] DNS queries to specified DNS servers to
resolve destination addresses; DNS responses are currently not
cached
- added pxylb-4.pg and srvlb-l4-4.pg workload drafts to test proxy
and origin server load balancing, respectfully
- added webaxe-3.pg configuration file for WebAxe workload; this
file was distributed with Polygraph version 2.5.4 under the name
webaxe-2.5.pg
- create IP aliases upon startup, based on the PGL bench
configuration; warn if aliases are not being created and explain
why
- log PGL configuration upon startup
- added support for URL prefixes; arbitrary string(s) can be
specified to be included as a URL "prefix", right after the first
'/' following the host name or host address; use Mime.prefixes for
now (just like Mime.extensions)
- added "special_msg_factor_beg" and "special_msg_factor_end" fields
to Phase specs to control the presence of special messages (IMS,
Reload, 302 Found, etc.) in the generated stream (PGL); useful to
speedup fill phase and to test the influence of those special
requests on the cache
- handle ``302 Found'' replies: treat them as special valid kind of
an HTTP response and follow URIs in the Location: field; 302s may
be foreign replies, but 302 takes priority when it comes to
redirection handling and statistics logging
- added client-side support for HTTP 300, 303, and 307 responses; a
Robot would request the Uri found in the Location: field of the
response after processing the original transaction
- use new client-centric PubWorld interface instead of old
server-centric object ID (oid) exchange; use/maintain related
global indexes; broadcast/update PubWorld info
- added support to flip-flop debugging (--dump hdrs) status on USR1
signal
- try to flush logs when process is running out of memory;
pre-allocate a 16KB buffer to be freed when we are running out of
memory, in hope to get enough memory to flush the logs; this trick
may help to save some of the logs when Polygraph quits with
"virtual memory exhausted in new"; may need more work
- added phase name reporting to ltrace; when multiple logs with
different phases are merged, the printed phase name can be the
name of any then-current phase.
- added polyprobe -- a traffic-volume-oriented network test tool
that will, eventually, replace netperf for many-to-many raw
network bandwidth tests used before PolyMix tests
- added polyrrd tool to supply run-time Polygraph stats to the rrd
tool; rrd tool is a "better MRTG" software for displaying run-time
stats in graphical form:
http://ee-staff.ethz.ch/~oetiker/webtools/rrdtool/
- added rrd-cgi.sh as a sample file to use with polyrrd and rrd tool
- pgl_test now accepts include directories as parameters (after the
PGL file to test)
- assume URLs starting with "/health" are health checks and reply as
if --ignore_urls was set
- added "Rptmstat" PGL type to store response-time-stat (as in
thermo-stat) configuration; a rptmstat attempts to keep response
time within the specified bounds by adjusting offered request rate
(just as a thermostat attempts to keep temperature within the
specified bounds by adjusting the furnace or A/C operation)
- added "rptmstat" field to Phase type; rptmstats are activated on a
per-phase basis
- added "rep_types" field to Server agent type (PGL); "Basic" and
"302 Found" reply types are supported
- added "client.hosts" and "server.hosts" fields to Bench object to
specify real machine addresses (as opposed to "virtual" aliases for
agents) (PGL);
- added DnsResolver PGL type to configure DNS resolver for robots
- skip insane/corrupted entries in the trace and warn about them;
trace corruption may happen when Polygraph process or the host OS
is killed without a chance to flush the binary logs
- added dns_resolver field to Robot type
- support port ranges in PGL addresses
- added use(Bench) PGL call to specify the bench configuration for
the test
- added minimize_new_conn field to Robot to specify probability of
an attempt to use idle connections to address' substitutes when no
idle connections to the address are available; added
note_substitutes() procedure call to register known substitute
groups (PGL); substitutes are useful to approximate connection
reuse pattern of a single-destination workload in a no-proxy or
no-balancer setup
- added dns_cfg tool to generate configuration files for named, a
DNS server, needs more work
- use a new tool to generate Makefiles for Unix (gmake) and MS
Windows (nmake). Temporary lost ability to built out of the source
directory.
- renamed --*log_size to --*log_buf_size so better reflect the true
meaning of the option
- removed the --new_oids* options as unused
- renamed popularity distributions pmUnif and pmZipf to popUnif and
popZipf to avoid conflict with popularity models (pm*)
- polished simple.pg and moved simple server to port 9090 to avoid
strange port 8080 hijacking problems on some Windows installations
- synced standard workloads with PGL changes
- changed HotSet algorithm to avoid storing theObjLmt: change hot
position when it is no longer in the working set; when WSS is
unknown, keep hot position in the middle of the URL set
(constantly sliding position); the rationale is to reduce memory
overhead and, maybe, to simplify remote synchronization of hot
positions
- changed Bench definition to use BenchSides instead of client_ and
server_ prefixes
- added new "Addressing Scheme" PGL types to calculate agent
addresses for various workloads
- PGL agents should always bind(2) to specified addresses
- removed "Rptm vs Size" and "Conn Life Time vs Use Count"
statistics; (they were huge and rarely used; similar data can
probably be derived from stats samples)
- changed binary log format and version
- moved pop_model PGL field from Robot to Agent because Server agent
needs it to generate ``302 Found'' responses
- replaced "agent.hosts" fields with "agent.addresses" to be more
consistent; "hosts" in PGL usually means "real, permanent
address" while "addresses" are often used for IP aliases that are
created run-time
- use address ranges when printing arrays of addresses, if possible
- when checking for "clocks out of sync" errors, ignore replies that
took a long time; slow replies is usually an indication of
problems other/bigger than clock synchronization
- embedded objects should inherit request type property from the
container (not ideal, but better than using default req type for
all embedded objects)
- removed old place() PGL function
- increased client-group-count-dependent hash capacities from 11 to
37 old limits did not allow to use more than 11 clients or server
machines in a test
- changed default value of polysrv's --idle_tout to 5 minutes
- removed piper tool -- it was not used and caused compilation
problems on FreeBSD 4.x due to new DummyNet interface
- tried to make alias manipulation with aka work again on Linux
- added port of msl_test to linux, based, in part, on code donated
by Andrew Schultz from Mission Critical Linux, Inc. More work is
required to make msl_test more portable
- provide traces of conn.open.rate and conn.estb.rate in the report
- improved report generation tools
- AIX portability fixes
- HP-UX (aCC) portability fixes
- Linux portability fixes
- MS W2K (VC++) portability fixes
- Solaris portability fixes
- added config.bat script to compile sources with nmake on Windows
- reduce default optimization level on Linux to 1 (-O1) to avoid
coredumps
- lots of polypxy fixes to make it more robust; needs more work
- a yet another attempt to fix code that merges level stats
- adjusted alias creation code to extract and honor individual
subnets of the alias addresses
- when merging (not concatenating) stats, the duration should be set
to the maximum duration of the two intervals being merged so that
merging 10 req/sec for 1 sec and 1 req/sec for 1 hour does not
result in 11 req/sec mean; will this screw anything that used to
work?
- when merging or concatenating phase stats, do not change the phase
name if phases with the same are joined
- fixed ./CdbBodyIter.cc:43: assertion failed: '!theInjector';
a common problem with realistic content simulation module
- fixed an old ltrace bug: sampling windows were sometimes getting
huge, leading to excessive memory consumption and possibly somewhat
incorrect trace plots
- "ceil(700/0.7)" returns 1001(!!); added a workaround; old IP
calculation tools were generating wrong values when 700
req/sec/host and 0.7req/sec/agent combination was used
- aka was not setting subnets right
This archive was generated by hypermail 2b29 : Tue Jul 10 2001 - 12:00:19 MDT