[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:

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.

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