OnionPerf is a utility to track Tor and onion service performance.

OnionPerf uses multiple processes and threads to download random data through Tor while tracking the performance of those downloads. The data is served and fetched on localhost using two TGen (traffic generator) processes, and is transferred through Tor using Tor client processes and an ephemeral Tor Onion Service. Tor control information and TGen performance statistics are logged to disk, analyzed once per day to produce a json stats database and files that can feed into Torperf, and can later be used to visualize changes in Tor client performance over time.

For more information, see

We are running three onionperf instance at the moment:

op-us in DC: (Greenhost)

op-nd in AMS: (Greenhost)

op-hk in Hong Kong: (Greenhost)

op-ab in Aberdeen, Scotland: (University of Aberdeen)

OnionPerf setup is rather simple, a standard test container (in docker) for OnionPerf can be found here:

The Greenhost hosted instances are on Greenhost VPS. Greenhost support can be contacted through this web form.

Contact irl for the University of Aberdeen instance for now.

Onionperf's Ticket Query

Ticket Status Summary Owner Reporter
#30238 new OnionPerf json analysis file is different than the one recreated from logs metrics-team acute
#29787 new Enumerate possible failure cases and include failure information in .tpf output metrics-team karsten
#29458 new Make sure that op-hk (and the other instances) do not run out of disk space metrics-team karsten
#29457 new Expose log_archive via the web server metrics-team karsten
#29377 assigned Improve unit test coverage acute irl
#29375 assigned Improve code documentation coverage for OnionPerf acute irl
#29374 new Analysis files sometimes present negative numbers in the payload_progress field metrics-team irl
#29371 assigned Relay blocklist metrics-team irl
#29370 assigned Measure mode with arbitrary tgen traffic models metrics-team irl
#29369 assigned Fix message logging and filtering metrics-team irl
#29368 assigned Add single onion service mode metrics-team irl
#29367 assigned Port OnionPerf to Python 3 metrics-team irl
#29366 assigned Persistent Onion service address metrics-team irl
#29365 assigned Add digests and sizes to index.xml metrics-team irl
#28271 accepted Check OnionPerf instances from Nagios irl irl
#26673 assigned Record download times of smaller file sizes from partial completion times metrics-team karsten
#26597 assigned Investigate and document additional overhead for first hop when not using guards metrics-team irl

Last modified 3 months ago Last modified on Jan 10, 2019, 12:11:58 PM