Next Previous Contents

6. Polygraph Inner Workings

6.1 What is nmt?

Looking at the new ``contents.pg'' I noticed that some OLCs have

expires = [lmt + const(0sec)];
and some have
expires = [nmt + const(0sec)];

Nmt is ``next modification time.'' So ``lmt + const(0sec)'' means that object's Expires: header field will contain true expiration time, i.e., the time matching the next modification time.

Only ``now'' and ``lmt'' qualifiers are common in real life. ``Nmt'' is something only a benchmark can know/use, in general. PolyMix-3 uses unrealistic truthful expiration times according to the agreement reached during the last organizational meeting in Boulder. In short, participants felt that a performance workload should not expose the fact that any cache can serve a stale object (and realistic expiration values would cause stale objects to be served). One can still configure Polygraph to test that case, of course.

We have updated on-line documentation to explain all supported qualifiers. Please let me know if the explanation is not detailed enough.

Also, you actually found a bug! The old olcStatic cycle should read

expires = [nmt + const(0sec)];

This is not a big deal, fortunately, because olcStatic is not used in PolyMix-3, and, for PolyMix-2 tests, one should not use new distributions anyway.

6.2 What controls the number of open sockets, as shown in the last column of Polygraph's console output?

The number of open sockets is related to your throughput and response time. In general, the number of open sockets is not an control knob or input parameter; it is the ``output" value measured by Polygraph. Many things can affect the value of that measurement, including BSD, polygraph, and your proxy.

If you want to have more open sockets, you can increase the response time, for example with xact_think in the server specification. Also you should find that higher throughput increases the number of open sockets.

Your operating system may have limits on the number of file descriptors per process. This also, obviously, limits how many connections Polygraph can open at once.

6.3 What can you tell me about reply sizes?

You can read the PGL files to understand the reply size distribution that Polygraph uses. For example, look in the workloads/include/contents.pg file. You'll also want to understand the relative popularity of each content type. For that you'll need to look in the workloads/polymix-4-guts.pg (or similar) file.

We ran a PolyMix-4 test with Squid and logged the content-length values. You can see the graphs on this page.


Next Previous Contents