Opened 3 weeks ago
Last modified 7 days ago
#32545 assigned task
Perform measurements to concretely understand snowflake throughput and network health
Reported by: | cohosh | Owned by: | cohosh |
---|---|---|---|
Priority: | Medium | Milestone: | |
Component: | Circumvention/Snowflake | Version: | |
Severity: | Normal | Keywords: | network-health, metrics |
Cc: | arlolra, cohosh, phw, dcf | Actual Points: | |
Parent ID: | Points: | ||
Reviewer: | Sponsor: | Sponsor28 |
Description
We know that there are several proxies that don't seem to work once connected (#31960) and that connections are very slow on Windows and possible all platforms (#31971).
It would help to be able to quantify this and actively monitor it. There are two things we want to measure: the number of snowflakes that work at all, and the throughput of a sample of snowflakes.
Perhaps something like onionperf can help us out here, but we'll have to see whether onionperf works well with snowflake when we get bad proxies or disconnect.
Child Tickets
Attachments (1)
Change History (6)
comment:1 Changed 13 days ago by
Owner: | set to cohosh |
---|---|
Status: | new → assigned |
comment:2 Changed 13 days ago by
Changed 9 days ago by
Attachment: | snowflake-throughput-canada-2019-11-28.pdf added |
---|
comment:3 Changed 9 days ago by
I ran the health check on linux from a VPS in North America and here are the results:
[1] "Number of failed snowflakes: 10" [1] "Average throughput (KB/s): 191.174541609437" [1] "Standard deviation: 123.497706667578"
comment:4 follow-up: 5 Changed 7 days ago by
@cohosh: what do you think about #31661 as a solution to the throughput problem?
comment:5 Changed 7 days ago by
Replying to cypherpunks:
@cohosh: what do you think about #31661 as a solution to the throughput problem?
Thanks for the idea cypherpunks. Running more than one snowflake bridge and having the broker tell snowflake proxies which bridge to use is definitely something we're considering. An idea like #31661 to base this decision roughly on location is interesting. It's going to take a while to consider this proposal (and to work out the logistics of setting up more than one snowflake bridge at all) and in the meantime this ticket is about getting some more concrete data on what the main reasons for high latency or low throughput are.
If you've written some scripts to measure throughput or latency of snowflakes and correlate this with geoip data and are willing to share them, please do! We really appreciate these insights.
I made some alterations to the bridgetest: https://github.com/cohosh/bridgetest/tree/snowflake_health
This makes a connection through 100 snowflakes and attempts to download a 1MB file. The script
infer-throughput.py
has been modified to process the 100 pcap files associated with these connections and output a CSV file that contains the bytes downloaded over time. The scriptthroughput.R
turns this CSV into a CDF plot and some stats and outputs the number of snowflakes that failed (we were unable to build a Tor circuit through them).