[tor-dev] Big performance improvement for meek-azure

David Fifield david at bamsoftware.com
Sun Apr 12 08:04:01 UTC 2015


I found and fixed a big performance limitation in the meek-azure
transport. If you tried meek-azure before, but it was too slow, give it
another try!

meek-azure has always seemed slower than the other two backends, and I
recently spent the time to figure out why. It was a lack of persistent
HTTP connections between the Azure host and the Tor bridge. Every single
HTTP request was doing a complete TCP and TLS handshake. This of course
increased latency, but the bottleneck was actually CPU on the bridge, as
it tried to cope with all those TLS handshakes. Here is the commit that
causes connections to be shared and reused:
https://gitweb.torproject.org/pluggable-transports/meek.git/commit/?id=e06bcf2c849075cf241addf2182dfc0125a35c92

This issue did not affect meek-google because the App Engine URL fetch
API reuses HTTP connections transparently. It did not affect meek-amazon
because the CloudFront CDN does its own connection reuse.

Usage on meek-azure has already increased in the past few days since I
started testing the change. I attached a graph that shows the all-time
bandwidth history of the bridge.
https://globe.torproject.org/#/bridge/AA033EEB61601B2B7312D89B62AAA23DC3ED8A34

David Fifield
-------------- next part --------------
A non-text attachment was scrubbed...
Name: meek-azure-AA033EEB61601B2B7312D89B62AAA23DC3ED8A34.png
Type: image/png
Size: 19931 bytes
Desc: not available
URL: <http://lists.torproject.org/pipermail/tor-dev/attachments/20150412/5f75fd32/attachment-0001.png>


More information about the tor-dev mailing list