[tor-dev] Twisted-based Tor client performance measurement tool
Karsten Loesing
karsten at torproject.org
Mon Jan 21 20:06:38 UTC 2013
Hi everyone,
you probably heard of Torperf [0], the tool that produces our Tor client
performance graphs [1]. Torperf is mostly a bunch of scripts and
lengthy HOWTOs, so setting it up and keeping it happy is not exactly
trivial. The same applies to extending it, e.g., to make downloads
using Selenium/Firefox rather than using its own C SOCKS client.
I'm pondering a rewrite of Torperf in Twisted. The idea is to have a
single Twisted application that is trivial to install and that does the
following things:
1) set up local Tor clients, configure them, and register for events;
2) run a local web server to download files from or upload files to;
3) periodically run one or more tests which can be:
3.1) an HTTP GET request over Tor to its own web server,
3.2) an HTTP POST request to measure upload speed,
3.3) a GET or POST request to a locally running hidden service,
3.4) a series of fetches of top 50 Alexa domains using Selenium/Firefox;
3.5) a series of requests to track stream/circ allocations for #5830;
4) store request timestamps and Tor controller events to SQLite;
5) provide results via a RESTful API over its web server.
That's a lot, and to make things even more fun, there's a sponsor
deadline to have more realistic Torperf measurements by February 28.
So, I want to start with 3.4 and minimal versions of 4 and 5. But I
want to make sure that the remaining parts can be added later without
redesigning everything again.
My questions:
- Is Twisted the right framework for this? What are the alternatives?
- Is there existing code that I should look at before writing new code?
- Does anybody want to help out? :)
Thanks!
Karsten
[0] https://gitweb.torproject.org/torperf.git
[1] https://metrics.torproject.org/performance.html
More information about the tor-dev
mailing list