Thanks for the help. This is just a recap to see if I understood everything
correctly. It turned out to be easier than I expected.
What I did was use two phases, which roughly look like this:
Phase startup = {
name = "startup";
goal.duration = 5min;
recur_factor_beg = 0%;
recur_factor_end = 0%;
};
Phase testing = {
name = "testing";
goal.duration = 1hour;
recur_factor_beg = 100%;
recur_factor_end = 100%;
};
And every robot's public_interest setting is 100%.
For now I have set hot_set_frac and hot_set_prob both at 100%, but tweaking
the hot_set_frac will allow me to change the number of pages that the robot
actually requests.
> 1. limit the working set size using working_set_cap(50) PGL call
The working set size is apparently one larger than what you might expect.
Entering 50 returned 51 unique requested objects. But this is of course
cosmetic.
> 2. set robot recurrence to 100%; set public interest to 100%
> or at least 90%; set robot's popularity model (pop_model)
> so that hot_set_prob is high and hot_set_frac is as low as
> you want it to be
I guess it's not possible to share the "public" working set between clients
on different machines? I'm now running clients on 3 different machines (a
total of 8 robots), so I guess I will have to rearrange my setup to get them
on one machine. The request rates I'm using at the moment aren't very high,
so that's no problem.
> You may see some side-effects of a very small working set size and
> very high recurrence ratio. For example, if your measured hit ratio is
> also 100%, your robots will not be able to synchronize phases because
> they will not be able to talk to the servers.
Yes, this is a problem, but I suppose I can solve this by adding a third
phase with a number of new objects that haven't been cached before (or
possibly disabling synchronization).
> Please share your results or problems in getting this to work. Other
> people may need to model similar environments so your experiences may
> be of interest to the general Polygraph public.
Thanks again for the great help.
Now I just have one more challenge ahead: figuring out the mean request rate
for individual objects for a particular client. Browsing through the lx
output I don't think this is logged, so I will have to add some logging to
my proxy, however this leads to another problem: how to synchronise my
programs to the phases in Polygraph.
Maybe I can use the information that polysrv is sending to the clients. I
suppose the synchronization information is somewhere in a response's header
fields, I still have to look into this though.
One more question: I get a lot of page faults with physical i/o (about 300).
Browsing the site I discovered that the solution is not straightforward (I'm
using Linux), so I hope that these faults only impact the performance and
not the validity of the tests?
kind regards,
Peter
This archive was generated by hypermail 2b29 : Mon Feb 06 2006 - 12:00:22 MST