Polygraph v4.3.1 available
Alex Rousskov
rousskov at measurement-factory.com
Fri Mar 4 18:19:18 UTC 2011
Hello,
Web Polygraph v4.3.1 is now available at
http://www.web-polygraph.org/downloads/
Compared to the last public release (v4.0.11), this version includes
many new features and improvements. Here is a brief summary:
- SOCKS support.
- Content-driven robots.
- Transaction lifetime limits.
- PGL phase script access to live transaction stats.
- Better randomness and consistency in traffic generation models.
- Better support for trace replay.
- PGL-configurable custom transaction statistics.
- IPv6, DNS, and HTTP support fixes.
- Portability improvements and bug fixes.
Please see the change log quoted below for details.
Enjoy,
Alex.
------------ Change Log since v4.0.11 ---------------
> version 4.3.1
> 2011/03/03
>
> - Better support for trace replay: Ignore Robot.origins field
> for PGL Robots with foreign-only interest. Before the change,
> non-empty Robot.origins field was required, even if it was
> unused because the Robot has no interest other than replaying
> the foreign trace.
>
> - Better support for trace replay: Do not "warm up" Robots with
> foreign-only interest. Before the change, many workloads
> containing trace-replaying Robots could get stuck in the first
> phase due to an infinite warmup. Now, foreign-only Robots do
> not affect the warmup, and the first phase ends as expected.
>
> - Print the corresponding workload file line and number for many
> PGL-related warnings and errors.
>
> - Fixed client crash on exit when Robot.accept_content_encodings
> PGL field is set.
>
> - Fixed generation of lifecycle-related entity parameters when
> the same ObjLifeCycle object is used multiple times in the
> workload. The bug resulted in unexpected entity-header (e.g.,
> Last-Modified-Time and Expires) changes when the same URL was
> revisited.
>
> - Fix statistics recording for aborted transactions. Before the
> change, non-basic (e.g. POST) aborted transactions were
> recorded in the wrong category (e.g. post). Now, all aborted
> transactions are recorded in the aborted category.
>
> - OpenSSL 1.0 support (LP:690599).
>
> - Fixed epoll(2)-related bug which could result in "Socket not
> connected" and similar errors.
>
> - Fixed select(2) support in SSL-related workloads.
>
> - Code cleanup.
>
>
> version 4.3.0
> 2010/12/10
>
> - Content-driven Robots support: The user may configure Robot
> behavior based on Content. Real HTTP client behavior often
> depends on web site and its content. Content-driven Robots
> help simulate those dependencies.
>
> All for-Robot settings in PGL Content objects are grouped
> under the new Content::client_behavior field. A new PGL
> ClientBehavior type is added. Assigning PGL Robot to
> ClientBehavior and vice versa is supported. Once Server and
> Content are selected, Content::client_behavior settings, if
> any, overwrite the corresponding Robot fields.
>
> For now, the following three Robot behavior properties can be
> specified on per-Content basis: req_types, req_methods, and
> ranges.
>
> - Considerably improved the randomness of distribution values
> tied to URLs, such as response sizes. The old distributions
> could have too many similar values, with too few extreme
> values, especially when non-unique worlds (--unique_world no)
> were used with multiple PGL Servers and table-based
> distributions.
>
> - Linked object blobs from traffic stream tables in report.
>
> - Fixed poll(2)-related bug which could result in "Socket not
> connected" or similar errors on platforms without epoll(2)
> support such as Mac OS X.
>
> - Multiple world support for distr_test tool: The world_count
> option is intended to simulate URL-based value generation in
> workloads with multiple PGL Servers, each Server being a "oid
> world" for the Robot. By default, world_count is 1, and all
> oids are generated from a single world. If world_count is
> greater than 1, distr_test generates oids from multiple
> worlds. The number of oids generated from each world is
> (trials count / worlds count).
>
> - Minor fixes and code cleanup.
>
>
> version 4.2.2
> 2010/11/05
>
> - Added custom stats: The user may configure which transactions
> are added to custom stats based on HTTP status code.
> Configuration is done with Agent.custom_stats_scope PGL field:
>
> custom_stats_scope = ["all", "-2xx", "+30x", "+206"];
>
> If a transaction finishes before getting a reply, or there is
> no HTTP status code for another reason, the transaction is not
> included in the custom stats.
>
> The following custom stats are collected: custom.rep,
> custom.live.rep, custom.projected.rep. Custom stats are
> accessible from PGL phase scripts.
>
> - Fixed PGL TblDistr to produce the same results for the same
> seed. For example, if a table distribution is used for
> response body sizes, the response size would stay the same
> when the same URL is visited multiple times.
>
> - Fixed several build and startup problems on Mac OS X.
>
> - Fixed a DummyNet-related build problem on FreeBSD 8.1.
>
> - Fixed IPv6 address parsing in command line arguments.
>
> - Fixed segfault when parsing a PGL array or list with a
> malformed item.
>
> - Allow IPv6 addresses in PGL to start with '[:'.
>
>
> version 4.2.1
> 2010/10/14
>
> - Transaction lifetime support: Allow the user to limit the
> lifetime of client and server transactions via the new PGL
> Agent::xact_lifetime field. A transaction aborts when its
> configured lifetime expires. Aborted transactions are treated
> as errors on client and server sides of the test, for now.
>
> Client transaction lifetime includes both connection slot
> waiting time (if any; see Robot::open_conn_lmt) and regular
> execution time. Server transaction lifetime includes both think
> time (if any; see Agent::xact_think) and regular execution time.
>
>
> version 4.2.0
> 2010/10/08
>
> - Allow PGL scripts to monitor in-flight or "live" transactions
> so that they can adjust load even when many transactions get
> stuck or slow down and do not immediately contribute to regular
> postmortem stats. Measure how long live transactions have
> been running (live.rep.rptm) and how many response bytes they
> have read (live.rep.size). Make these new stats available to
> PGL scripts via the regular stats interfaces
> (currentSample().live.* and currentPhase().live.*).
>
> - Added projected.rep.* statistics that combines live and
> finished transaction stats. Available to PGL scripts only.
>
> - Treat an HTTP CONNECT response as the end of the transaction.
> Collect and report stats dedicated to these new CONNECT-only
> transactions. These CONNECT transactions are often rather
> different from the in-tunnel transactions that follow.
> Isolating them also prevents CONNECT overheads from polluting
> the first in-tunnel transaction stats.
>
>
> version 4.1.2
> 2010/11/06
>
> - Fixed PGL TblDistr to produce the same results for the same
> seed. For example, if a table distribution is used for
> response body sizes, the response size would stay the same
> when the same URL is visited multiple times.
>
> - Fixed several build and startup problems on Mac OS X.
>
> - Fixed a DummyNet-related build problem on FreeBSD 8.1.
>
> - Fixed IPv6 address parsing in command line arguments.
>
> - Fixed segfault when parsing a PGL array or list with a
> malformed item.
>
> - Allow IPv6 addresses in PGL to start with '[:'.
>
>
> version 4.1.1
> 2010/10/07
>
> - Add dump command to the cdb tool, which stores all verbatim and
> link-only objects into individual files. Cdb dump accepts an
> optional --as "path/prefix${name}.suffix " parameter. Default
> --as value is "./cdb${name}". ${name} macros are substituted with
> 1,2,3,4... integers.
>
> - Cdb interface has changed. Commands (add, dump, show) are passed
> as options with database argument, i.e. cdb --show test.cdb.
>
> - Limit PGL load and population factors value to [0%, 100%] range.
> Print error and exit if begin or end factor value is greater than
> 100%. If a script changes factor to a negative or greater than
> 100% value, print warning and set the factor to 0%/100% instead.
>
> - Set Recursion Desired (RD) flag for outgoing DNS queries because
> some modern resolvers do not accept queries without that flag
> and because we do not recursively resolve ourselves.
>
> - Skip already configured network interface aliases when creating
> new ones if delete_old_addrs option is false.
>
> - Do not send Content-MD5 header with HTTP 206 (Partial Content)
> responses. This fixes segfault and is in line with HTTPbis.
> See http://trac.tools.ietf.org/wg/httpbis/trac/ticket/178
>
> - Fix assertion during network interface alias creation.
>
> - Fix errPersistButNoCLen error on client-side when multi-ranges
> and persistent connections are enabled. Content-Length is not
> required if message uses the media type "multipart/byteranges".
>
> - Fix LP:644813: SSL issues with DNS and embedded objects.
>
> - Fix address space size check for SpreadAs.
>
> - Fix multiple alias range support in the aka tool.
>
> - Fix compilation of the msl_test tool on Linux.
>
> - Make out-of-memory handler more robust.
>
> - Minor fixes and code cleanup.
>
>
> version 4.1.0
> 2010/05/13
>
> - Support SOCKS5 proxies for HTTP, HTTPS, and passive FTP
> traffic (socks_proxies and socks_prob PGL Robot fields). No
> support for Active FTP data connections yet. "None" and basic
> "username/password" SOCKS authentication methods are
> supported. Chaining SOCKS and HTTP proxies is supported (the
> socks_chaining_prob PGL Robot field).
>
> - Extend the ipsToNames() PGL function to support a domain name
> generation template with ${dashed_ip} and ${port} macros. This
> change allows more flexibility in naming a large number of
> server domains.
>
> - Add a dynamize() PGL function that converts an array of static
> domain names to dynamic names (using the supplied renewal
> percentage), similar to what the dynamicName() function does
> to one static name. This change allows creation of a large
> number of servers, each with a unique dynamic domain name.
>
> - Do not send "100 Continue" control response if we got the
> entire request body already. This fix prevents POST requests
> sent without waiting for 100 Continue response from getting
> stuck because the client sent everything and cannot continue.
>
> - Fix server freeze when "Expect: 100-continue" request headers
> and body (partial or complete) is received in a single read(2)
> call.
>
> - Fix assertion when an HTTP client aborts transaction.
>
> - Fix abort position calculation on the client side. The abort
> size was set bigger than the request size, and client aborted
> after the request was sent, during response reading.
>
More information about the Users
mailing list