Scalability and Perf Board issueshttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues2020-02-10T22:06:26Zhttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/39EWMA Tuning2020-02-10T22:06:26ZMike PerryEWMA Tuninghttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/38Kist Interval Tuning2020-02-10T22:08:39ZMike PerryKist Interval TuningChanging the global kist interval may improve throughput, at the expense of latency.Changing the global kist interval may improve throughput, at the expense of latency.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/37Torflow -> sbws2020-02-07T17:57:22ZMike PerryTorflow -> sbwshttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/36Flashflow 20 second flood test2020-02-07T18:38:47ZMike PerryFlashflow 20 second flood testhttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/34Exit scanning for misconfig failures2020-02-07T17:53:21ZMike PerryExit scanning for misconfig failuresSome exits fail because of poor config. We can scan for them and reach out to operators to improve things.Some exits fail because of poor config. We can scan for them and reach out to operators to improve things.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/33Evaluate shadow models2020-02-07T18:36:07ZMike PerryEvaluate shadow modelsWhat is the smallest, lowest-resource shadow model that can reproduce various experimental results from the literature and the live network?What is the smallest, lowest-resource shadow model that can reproduce various experimental results from the literature and the live network?https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/32Circuit Build Timeout tuning2020-02-07T17:49:11ZMike PerryCircuit Build Timeout tuningIf we have onionperf instances that support guards, we can experiment with different CBT cutoffs.If we have onionperf instances that support guards, we can experiment with different CBT cutoffs.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/31Increase number of guards2020-02-07T17:47:14ZMike PerryIncrease number of guardsWith more guards, CBT can choose better fast paths to avoid overloaded guards.With more guards, CBT can choose better fast paths to avoid overloaded guards.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/30Filter out various relays from onionperf results2020-02-07T18:37:32ZMike PerryFilter out various relays from onionperf resultsIf we filter out all onionperf paths that contain 0.2.9 relays (pre-KIST), or change the Fast cutoff, or change the Guard cutoff by filtering paths, what happens to the results?
In this way we can evaluate the impact of these changes on...If we filter out all onionperf paths that contain 0.2.9 relays (pre-KIST), or change the Fast cutoff, or change the Guard cutoff by filtering paths, what happens to the results?
In this way we can evaluate the impact of these changes on the network perf before rolling out any actual changes.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/28Tor Browser optimizations (optimistic data, HTTP2, etc)2020-02-07T18:43:01ZMike PerryTor Browser optimizations (optimistic data, HTTP2, etc)Various optimizations in the browser could improve user-perceived performance.
Many of these need a browser model for onionperf to validate.Various optimizations in the browser could improve user-perceived performance.
Many of these need a browser model for onionperf to validate.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/27TCP fast open at exits2020-02-07T18:19:15ZMike PerryTCP fast open at exitsIf all exits used TCP fast open, latency might decrease.If all exits used TCP fast open, latency might decrease.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/24Relay-specific KIST intervals2020-02-07T17:32:06ZMike PerryRelay-specific KIST intervalsOur KIST intervals need to be different depending on relay throughput.
We could either do this via kernel patches (long, expensive, slow rollout), or simply by setting different cutoffs for these values in the consensus based on relay t...Our KIST intervals need to be different depending on relay throughput.
We could either do this via kernel patches (long, expensive, slow rollout), or simply by setting different cutoffs for these values in the consensus based on relay traffic volume.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/23Multithreaded crypto/networking2020-02-07T18:34:02ZMike PerryMultithreaded crypto/networkingIf we supported either multithreaded crypto or networking, we could reduce the number of relay descriptors in the network by eliminating the need to run multiple tor instances per core on fast links.
This would also eliminate some side ...If we supported either multithreaded crypto or networking, we could reduce the number of relay descriptors in the network by eliminating the need to run multiple tor instances per core on fast links.
This would also eliminate some side channels due to single-threaded ops blocking networking activity.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/21Tunable predictive circuit building2020-02-07T18:32:40ZMike PerryTunable predictive circuit buildingOur predictive circuit building might not be optimal. If we have a realistic user model, we could tune it.Our predictive circuit building might not be optimal. If we have a realistic user model, we could tune it.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/20Deploy GuardFraction Balancing2020-02-07T18:30:17ZMike PerryDeploy GuardFraction BalancingGuardfraction compensates for our guard rotation period by adjusting load balancing weights based on how long a relay has been a guard.
However, the statekeeping required for this is done in external scripts that are hard to use/deploy/...Guardfraction compensates for our guard rotation period by adjusting load balancing weights based on how long a relay has been a guard.
However, the statekeeping required for this is done in external scripts that are hard to use/deploy/maintain.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/18Consensus params for flow control window2020-02-07T18:21:31ZMike PerryConsensus params for flow control windowIf we made consensus params for our SENDME refill amount and initial window sizes, we could see if various defaults have better latency and throughput characteristics.If we made consensus params for our SENDME refill amount and initial window sizes, we could see if various defaults have better latency and throughput characteristics.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/17Consensus param for Fast cutoff2020-07-09T20:14:26ZMike PerryConsensus param for Fast cutoffThe Fast cutoff is currently hard-coded. If we made a consensus param for this value, we could reduce consensus size and also improve long-tail performance by eliminating slow relays.The Fast cutoff is currently hard-coded. If we made a consensus param for this value, we could reduce consensus size and also improve long-tail performance by eliminating slow relays.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/16Consensus param for Guard cutoff2020-02-07T18:20:53ZMike PerryConsensus param for Guard cutoffIf we made the Guard cutoff into a consensus parameter, we could tune the number of guards to better load balance the network and eliminate bottleneck guards.If we made the Guard cutoff into a consensus parameter, we could tune the number of guards to better load balance the network and eliminate bottleneck guards.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/14Tweak sbws scaling curves2020-02-07T18:18:10ZMike PerryTweak sbws scaling curvesAs an alternative, or perhaps in addition to, PID feedback, we could tweak the weights that sbws applies by imposing an additional curve on top of the results.
I am not a huge fan of this approach, but I am adding it for completeness.As an alternative, or perhaps in addition to, PID feedback, we could tweak the weights that sbws applies by imposing an additional curve on top of the results.
I am not a huge fan of this approach, but I am adding it for completeness.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/12PID feedback for bw auths2020-02-07T18:17:32ZMike PerryPID feedback for bw authsThe Torflow PID feedback system will result in a provably optimimum load balancing equilibrium for uniform average stream capacity across the network.
The problem is if we only use bandwidth for this feedback, relays get overloaded in o...The Torflow PID feedback system will result in a provably optimimum load balancing equilibrium for uniform average stream capacity across the network.
The problem is if we only use bandwidth for this feedback, relays get overloaded in other ways. So we need to stop feedback if nodes announce that they are overloaded via memory, sockets, or CPU (which is another ticket).