[tor-bugs] #4086 [Analysis]: Compare performance of TokenBucketRefillInterval params in simulated network

Tor Bug Tracker & Wiki torproject-admin at torproject.org
Tue Feb 28 14:58:34 UTC 2012


#4086: Compare performance of TokenBucketRefillInterval params in simulated
network
-------------------------------------+--------------------------------------
 Reporter:  arma                     |          Owner:       
     Type:  task                     |         Status:  new  
 Priority:  normal                   |      Milestone:       
Component:  Analysis                 |        Version:       
 Keywords:  performance flowcontrol  |         Parent:  #4465
   Points:                           |   Actualpoints:       
-------------------------------------+--------------------------------------

Comment(by kevin):

 '''Summary'''
 I ran a set of preliminary experiments on ExperimenTor with different
 TokenBucketRefillInterval values. In particular, the experiments compare
 refilling tokens once every 1000 milliseconds (once per second), once
 every 100 milliseconds (ten times per second), and once every 10
 milliseconds (100 times per second). Also,  experiments are run with EWMA
 on and off, to identify any interactions between token bucket refill
 interval and circuit-level scheduling policy.

 '''Results'''
 [http://www.cs.uwaterloo.ca/~k4bauer/volatile/experiments-tokenbucket.pdf
 Results are available here] (Note that the file is too large to upload to
 this page).

 '''The network model'''
 The network topology consists of pairwise links with delays configured by
 sampling from the King data set [1].

 '''The Tor router and client model'''
 200 destination servers, 50 relays, 950 web clients, 50 bulk clients.
 Relay bandwidths are taken from a real consensus document and rate limits
 from the corresponding relay descriptors.

 The web clients "think" for a time between 1 and 30 seconds, selected
 uniformly at random, between 300 KiB file downloads.

 Bulk clients continuously download 5 MiB files with no think time between
 fetches. The destination servers are configured to be faster than any of
 the relays or clients, so they are guaranteed not to be the bandwidth
 bottleneck.

 All clients bandwidths are assigned by sampling from the Ookla Speedtest
 data [2].

 '''Performance metrics'''
 To measure the client's performance, I measured time-to-first-byte and
 overall download time (equivalently, time-to-last-byte).

 '''Router configurations'''
 Tested was refilling every 1000 ms (1/s), 100 ms (10/s), and 10 ms (100/s)
 under otherwise default Tor client and router configurations. I ran two
 sets of these experiments: one with CircuitPriorityHalfLife of 30 (EWMA),
 and one with 0 (RR).

 '''High level observations'''
 These results generally support the results obtained by Shadow, even
 though slightly different assumptions were made in constructing the
 experiments (which is in and of itself interesting!).

 The performance graphs look favorable for multiple refills per second.
 Also, you'll see the familiar "stairstep" behavior in the time-to-first-
 byte graphs when scheduling once per second. More details:

 '''Results for web clients'''
 The most frequent token refill interval (every 10 ms) seems to offer the
 best time-to-first-byte and overall download times for web clients,
 regardless of whether EWMA is enabled.

 '''Results for bulk clients'''
 Bulk clients don't show an obvious improvement in time-to-first-byte with
 shorter refill intervals. Interestingly, 100 ms seems to offer the worst
 performance for the bulk clients when EWMA is disabled.

 '''References'''
 [1] King data set. http://pdos.csail.mit.edu/p2psim/kingdata/
 [2] Ookla Netindex Data. http://www.netindex.com/

-- 
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/4086#comment:7>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list