Web Polygraph
Documentation
Reference Manual
PGL
Simulation models
Command options
User-defined distr
Loadable modules
Output
· Console
Overview
Client side
Server side
Messages
Lx
User Manual
Workloads
Downloads
Copyright
Changes
Upgrade
Support
Wish List
Sponsors
Mailing List
Users
Miscellaneous
Results
Compliance
Other Tools
Search
| | |
Home · Search · Print · Help
Console
This page describes console output format of Polygraph clients and
servers. Individual errors, warnings, and other run-time messages are
explained elsewhere.
Table of Contents
1. Overview
2. Client side
2.1 Run-time stats
2.2 Error message format
3. Server side
1. Overview
Polygraph sends status and error messages to the console. Console
output can be redirected into a file using the --console
option. The amount of information is controlled using the
--verb_lvl option.
Most messages that can go to the console (they may or may not be
admitted based on the current verbosity level) are also logged into a
binary log.
Request and reply dumps are not send to the console but
are rather printed to the standard output stream. Errors that are not
caught by polygraph are dumped to the standard error stream. Standard
streams are also redirected, but are not logged.
Excessive printing to the console during a production test is a bad
idea as it is likely to affect performance.
There are more console messages than is described on this page.
Hopefully, most messages that are left out are self-explanatory.
Please let us know if some message requires further documentation.
2. Client side
Below is a copy of client-side console output with some lines snipped. A
letter-link on the left points to the description of the corresponding output
section. Note that a high verbosity level is required to get all the output
presented here.
| |
pail> ./polyclt --config /tmp/my-simple.pg --verb_lvl 5 ...
|
A | |
000.00| Command: ./polyclt --config /tmp/simple.pg ...
000.00| Configuration:
version: 2.1.H
host_type: i386-unknown-freebsd3.1
verb_lvl: 5
prn_reqs: off
...
proxy: 10.0.1.253:3128
ports: <none>
ign_false_hits: on
prn_false_misses: off
000.00| Phases:
phase load_beg load_end goal flags
dflt 1.00 1.00 <none>
000.00| FDs: 12288 out of 12288 FDs can be used;
safeguard limit: 11906
000.00| run-id: 01801f37.045eced8:00000004 pid: 52952
000.00| current time: Thu, 16 Sep 1999 22:04:52 GMT
000.00| waiting for traffic
|
B | |
000.01| agent `R101' starting on 10.0.0.1
000.09| i-dflt 23 4.52 196 0.00 0 1
000.17| i-dflt 48 5.00 199 0.00 0 1
000.25| i-dflt 73 5.00 199 0.00 0 1
000.34| i-dflt 98 5.00 198 0.00 0 1
000.42| i-dflt 125 5.40 185 0.00 0 1
...
001.92| i-dflt 649 5.60 178 0.00 0 1
002.00| i-dflt 677 5.60 178 0.00 0 1
002.09| i-dflt 704 5.40 185 0.00 0 1
002.11| Connection.cc:183: error: 1/1 (60) Operation timed out
002.17| i-dflt 730 5.20 198 0.00 1 1
002.25| i-dflt 754 4.80 200 0.00 0 1
|
C | |
^Cgot shutdown signal (2)
002.26| noticed shutdown signal (2)
002.26| got 755 xactions and 1 errors
002.26| shutdown reason: got shutdown signal
|
Most lines are prefixed with a timestamp (minutes since experiment start).
Note that polygraph may not update its internal clock before printing a line
so timestamps are approximate.
- Section A
Polyclt output starts with Section A. The first
section includes the repeat of the command line used to start
polygraph and the dump of all option values for the current run.
If an option is explicitly given on the command line, the command
line value will usually be honored and preserved. Other options will
have their default values. Note that some defaults depend on other
options.
The configuration dump at the beginning of a run does not define
Polygraph behavior completely because most workload specs are in the
configuration file. Given the same configuration file and the same
options, Polygraph will produce the same kind of traffic. Note, however,
that the same traffic may produce different results depending on the past
history (e.g., a proxy used up all free disk space at the end of the
previous run). Also, system imposed limits may affect Polygraph
behavior.
After the options dump, Polygraph reports execution schedule For each
schedule phase, its name, load levels, ``goal'', and special flags are
printed. In our case, we had a single and very simple default phase with
constant (maximum) load level and no goal or flags.
After the phases schedule, Polygraph dumps some system limits:
first 12288 FDs: Available number of FDs as reported
by the setrlimit(RLIMIT_NOFILE) system call.
Polygraph attempts to set current (soft) limit to maximum
(hard) limit and then reports how many file descriptors OS
allowed us to use.
second 12288 FDs: Maximum number of FDs as reported by
the getrlimit(RLIMIT_NOFILE) system call. If this
value is higher than available number of FDs, then OS did not
allow Polygraph to raise current (soft) limit hight enough.
safeguard limit: Approximate number of FDs that
Polygraph will allow itself to use. See the --fd_limit
option for details.
At the bottom of Section A, Polygraph prints run
id, process id, and current time. The run id is
meant to be unique across all executions of Polygraph within a few
years.
- Section B
Section B represents run-time statistics. Run-time
stats are usually printed in a table-like form. We describe the columns of
that table in a separate section below.
Section B also contains an error message. The
format for error messages is described below in a separate
section.
- Section C
Finally, Section C contains some statistics for the
entire run. The output also includes the reason for run termination.
2.1 Run-time stats
(1) (2) (3) (4) (5) (6) (7) (8) (9)
000.09| i-dflt 23 4.52 196 0.00 0 1
000.17| i-dflt 48 5.00 199 0.00 0 1
000.25| i-dflt 73 5.00 199 0.00 0 1
000.34| i-dflt 98 5.00 198 0.00 0 1
000.42| i-dflt 125 5.40 185 0.00 0 1
Here is a brief explanation for each column of the run-time stats output.
- Minutes since start
- "i-" and "p-" stand for interval and phase-based stats
- current phase name
- number of replies received so far (across all phases)
- reply rate (replies per second)
- mean response time in milliseconds. For the client, the response time
timer starts when the client starts establishing the connection (or starts
sending the first request byte on a previously idle persistent
connection); the timer stops when the last response byte is received. For
the server, the response time timer starts when the connection is accepted
(or the first request byte on a previously idle persistent connection is
received); the timer stops when the last response byte is written. Thus,
artificial server xact_think delays, if
configured, are included in this measurement.
- hit ratio in percents (client side);
nothing interesting on the server side yet
- number of transaction errors during that interval or
phase
(note: not all errors are transaction errors)
- number of open sockets, including UDP and other housekeeping sockets
if any;
this number is usually close to the number of pending
transactions; (interval stats only!)
2.2 Error message format
Individual errors, warnings, and other run-time messages are
explained elsewhere.
Polygraph counts all errors it detects. However, Poly uses an exponential
back-off algorithm when reporting errors on the console. Typically, only the
following error occurrences will appear on a console: 1-st, 2-nd, 3-rd,
7-th, 15-th, ...
(1) (2) (3/4) (5) (6)
002.11| Connection.cc:183: error: 1/1 (s60) Operation timed out
An explanation for each column of a typical run-time error output follows.
- Timestamp.
- Source code location if available.
- Number of errors of this type so far in this phase.
- Total number of errors so far in this phase.
- Error code. The codes starting with letter ``s'' are ``system'' error
codes that correspond to the errno value on your machine. Error
codes starting with letter ``c'' are custom errors detected by Polygraph
rather than by OS (e.g., ``false hit'' or ``foreign reply'').
- Short textual description of the error as produced by the OS (for
system errors) or Polygraph (for other errors).
In some cases, Polygraph may decide to print more than one line per error
to provide a longer, more detailed description.
N.B. To be honest, we faked the error message for the purpose of
showing at least some errors. If we put some stats in the example out of sync,
please let us know.
3. Server side
Server-side console output is pretty much the same as the client output
described above. With the following exceptions:
Home · Search · Print · Help
|