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
#30879 new Log file reprocessing shouldn't abort at first encountered line parsing error metrics-team karsten
#30798 new Develop and deploy tgen model resembling ping metrics-team karsten
#30791 accepted Expose onionperf data directories via webserver for op-nl, op-hk and op-us irl irl
#30588 new Move tgen servers to port 443 metrics-team irl
#30586 new requirements are not included in metrics-team irl
#30362 new OnionPerf TGen parser needs reworking metrics-team acute
#30238 new OnionPerf json analysis file is different than the one recreated from logs metrics-team acute
#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
#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
#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 needs_review Investigate and document additional overhead for first hop when not using guards metrics-team irl

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