Closed kloesing closed 8 years ago
Indeed, OnionPerf does not clear hs descriptor cache between runs. I agree that this makes data collected with OnionPerf somewhat less consistent and probably not perfectly comparable to the data collected by TorPerf, but I think it may be closer to the experience of a real client.
Do you think clearing the cache is a required feature at this point? If our vision is to only transition TGen to TorPerf and then stop using OnionPerf, perhaps this feature is low priority?
I think this is required for realistic, independent measurements. But I'd like this to be better supported by tor, possibly by adding a controller command or by adding this functionality to the NEWNYM command. I also agree that this can be low priority given the possible integration of TGen into Torperf.
This is now done during measurement mode by sending the NEWNYM
command to Tor. See here:
https://github.com/robgjansen/onionperf/blob/master/onionperf/monitor.py#L57
In measurement mode, OnionPerf does this every 5 minutes, which is also the pause time between fetches: https://github.com/robgjansen/onionperf/blob/master/onionperf/measurement.py#L366
In Torperf, I'm using a modified tor version that accepts a USR2 signal to clear the hidden-service descriptor cache between runs. But OnionPerf seems to work just fine with an unmodified tor version. Does it also clear the cache between runs, and if so, how? If not, doesn't that make results harder to compare, because some of them will include descriptor fetches and some not?