[tor-bugs] #12889 [general]: Simulate global circuit scheduling from #9262
Tor Bug Tracker & Wiki
blackhole at torproject.org
Thu Nov 20 17:31:44 UTC 2014
#12889: Simulate global circuit scheduling from #9262
----------------------------+------------------------
Reporter: robgjansen | Owner: robgjansen
Type: task | Status: new
Priority: normal | Milestone:
Component: general | Version:
Resolution: | Keywords: Shadow
Actual Points: | Parent ID: #12541
Points: |
----------------------------+------------------------
Comment (by robgjansen):
(Second try, after I lost my first long and detailed explanation to trac.)
I ran a set of experiments varying the three parameters. The graphs
showing the results are attached in parts due to file upload size limits.
(I accidentally attached them to #12541.)
highwater:
[https://trac.torproject.org/projects/tor/attachment/ticket/12541/cmux-
highwater.shadowtor.pdf.xz-part0 part0]
[https://trac.torproject.org/projects/tor/attachment/ticket/12541/cmux-
highwater.shadowtor.pdf.xz-part1 part1]
lowwater:
[https://trac.torproject.org/projects/tor/attachment/ticket/12541/cmux-
lowwater.shadowtor.pdf.xz-part0 part0]
[https://trac.torproject.org/projects/tor/attachment/ticket/12541/cmux-
lowwater.shadowtor.pdf.xz-part1 part1]
maxflush:
[https://trac.torproject.org/projects/tor/attachment/ticket/12541/cmux-
maxflush.shadowtor.pdf.xz-part0 part0]
[https://trac.torproject.org/projects/tor/attachment/ticket/12541/cmux-
maxflush.shadowtor.pdf.xz-part1 part1]
I compressed and split the PDF files like
{{{
xz cmux-highwater.shadowtor.pdf
split -b 2500K -a 1 -d cmux-highwater.shadowtor.pdf.xz cmux-
highwater.shadowtor.pdf.xz-part
}}}
They can be reconstructed like
{{{
cat cmux-highwater.shadowtor.pdf.xz-part0 cmux-highwater.shadowtor.pdf.xz-
part1 > cmux-highwater.shadowtor.pdf.xz
xz -d highwater.shadowtor.pdf.xz
}}}
The results indicate that the combination of settings that I tested do not
result in improved download times without decreasing network throughput.
These findings are consistent with the testing of our global scheduling
prototype that we performed for the KIST paper.
The issue here is that we are missing the kernel/tcp information (#12890)
to help us make intelligent decisions about which channels should get data
and which ones should not. Without that information, the best approach
seems to be the greedy one where the scheduler immediately sends as much
as it can to each channel in an attempt to maximize throughput. Of course,
this means the circuit scheduler is having little effect, and Tor will not
be able to prioritize low EWMA circuits over high EWMA circuits correctly
- the reason for doing this in the first place.
In our KIST work, we also found that global scheduling alone did not
improve things dramatically. The real performance benefits were realized
after doing BOTH the global scheduling AND the socket write limits parts
of KIST (#12890) - the approaches work hand-in-hand to intelligently set
the high watermark for each channel. I expect similar results here.
We can either merge this branch and use the settings that result in the
old bahavior until #12890 is completed, or we can wait until #12890 is
completed on top of this branch and we have more simulation results.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/12889#comment:12>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list