It would be nice to have a command for this, that would execute the same tests, and then report performance as a series of MB/s figures for clients->exits, bridge clients->exits, and clients->hidden services.
Nick, is this SponsorR, or SponsorS, or both?
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
Alternately, we could leave this feature for Chutney 2.0, and just report performance each time we run chutney verify. This would work well with the configurable data volumes in legacy/trac#14174 (moved).
Trac: Status: new to assigned Summary: chutney perf: a new command that reports client, bridge, and HS performance to chutney verify: report client, bridge, and HS performance Owner: nickm to teor
Note: The bandwidth parameters can be changed by modifying constants in TorNet.py.
If we decide it's a good idea, I can do command-line arguments for these.
You'll likely need to change DATALEN in TorNet.py to 50MB or 100MB.
(I just hung python or tor on EC2 using 1GB.)
As a sanity check, the script doesn't calculate bandwidth until it takes > 1 second, and has sent > 5MB.
Expect to see something like this:
Verifying data transmission:Connecting: Exit to 127.0.0.1:4747 via client localhost:9008 Exit to 127.0.0.1:4747 via client localhost:9009Transmitting Data:........................................................................................................................Single Stream Bandwidth: 2034.50 MbpsOverall tor Bandwidth: 48828.06 MbpsTransmission: Success
The available options are (env variable for chutney, argument for test-network.sh):
CHUTNEY_DATA_BYTES=n sends n bytes per test connection (10 KBytes)
--bytes n
CHUTNEY_CONNECTIONS=n makes n test connections per client (1)
--connections n
CHUTNEY_HS_MULTI_CLIENT=1 makes each client connect to each HS (0)
--hs-multi-client 1
When enough data is transmitted, chutney verify reports:
Single Stream Bandwidth: the speed of the slowest stream, end-to-end
Overall tor Bandwidth: the sum of the bandwidth across each tor instance
This approximates the CPU-bound tor performance on the current machine,
assuming everything is multithreaded and network performance is infinite.
Note: using --connections 7 or greater on a HS will trigger a verification failure due to legacy/trac#15937 (moved).
These branches cover this task and all child tasks.
Verifying data transmission:Connecting: Exit to 127.0.0.1:4747 via client localhost:9010 Exit to 127.0.0.1:4747 via client localhost:9011 HS to jarz6vgn5xbbvnrk.onion:5858 (127.0.0.1:4747) via client localhost:9010Transmitting Data:.........................................................Single Stream Bandwidth: 79.08 MBytes/sOverall tor Bandwidth: 1265.23 MBytes/sTransmission: Success
Verifying data transmission:Connecting: Exit to 127.0.0.1:4747 via client localhost:9010 Exit to 127.0.0.1:4747 via client localhost:9011 HS to t4c3o37sgnc43flm.onion:5858 (127.0.0.1:4747) via client localhost:9010Transmitting Data:...............Transmission: Success
Verifying data transmission:Connecting: HS to q6hmwsdh5z4kmtoj.onion:5858 (127.0.0.1:4747) via client localhost:9014 HS to q6hmwsdh5z4kmtoj.onion:5858 (127.0.0.1:4747) via client localhost:9015 HS to q6hmwsdh5z4kmtoj.onion:5858 (127.0.0.1:4747) via client localhost:9016 HS to q6hmwsdh5z4kmtoj.onion:5858 (127.0.0.1:4747) via client localhost:9017 HS to q6hmwsdh5z4kmtoj.onion:5858 (127.0.0.1:4747) via client localhost:9018 HS to q6hmwsdh5z4kmtoj.onion:5858 (127.0.0.1:4747) via client localhost:9019 HS to ubz5w5ncwbvvqk75.onion:5858 (127.0.0.1:4747) via client localhost:9014 HS to ubz5w5ncwbvvqk75.onion:5858 (127.0.0.1:4747) via client localhost:9015 HS to ubz5w5ncwbvvqk75.onion:5858 (127.0.0.1:4747) via client localhost:9016 HS to ubz5w5ncwbvvqk75.onion:5858 (127.0.0.1:4747) via client localhost:9017 HS to ubz5w5ncwbvvqk75.onion:5858 (127.0.0.1:4747) via client localhost:9018 HS to ubz5w5ncwbvvqk75.onion:5858 (127.0.0.1:4747) via client localhost:9019 HS to kdgd6wb4w4gnvbrq.onion:5858 (127.0.0.1:4747) via client localhost:9014 HS to kdgd6wb4w4gnvbrq.onion:5858 (127.0.0.1:4747) via client localhost:9015 HS to kdgd6wb4w4gnvbrq.onion:5858 (127.0.0.1:4747) via client localhost:9016 HS to kdgd6wb4w4gnvbrq.onion:5858 (127.0.0.1:4747) via client localhost:9017 HS to kdgd6wb4w4gnvbrq.onion:5858 (127.0.0.1:4747) via client localhost:9018 HS to kdgd6wb4w4gnvbrq.onion:5858 (127.0.0.1:4747) via client localhost:9019 HS to gooa5v7yjkf6fbup.onion:5858 (127.0.0.1:4747) via client localhost:9014 HS to gooa5v7yjkf6fbup.onion:5858 (127.0.0.1:4747) via client localhost:9015 HS to gooa5v7yjkf6fbup.onion:5858 (127.0.0.1:4747) via client localhost:9016 HS to gooa5v7yjkf6fbup.onion:5858 (127.0.0.1:4747) via client localhost:9017 HS to gooa5v7yjkf6fbup.onion:5858 (127.0.0.1:4747) via client localhost:9018 HS to gooa5v7yjkf6fbup.onion:5858 (127.0.0.1:4747) via client localhost:9019 HS to ckn2xwnlouxasn52.onion:5858 (127.0.0.1:4747) via client localhost:9014 HS to ckn2xwnlouxasn52.onion:5858 (127.0.0.1:4747) via client localhost:9015 HS to ckn2xwnlouxasn52.onion:5858 (127.0.0.1:4747) via client localhost:9016 HS to ckn2xwnlouxasn52.onion:5858 (127.0.0.1:4747) via client localhost:9017 HS to ckn2xwnlouxasn52.onion:5858 (127.0.0.1:4747) via client localhost:9018 HS to ckn2xwnlouxasn52.onion:5858 (127.0.0.1:4747) via client localhost:9019Transmitting Data:..............................Transmission: Success
The available options are (env variable for chutney, argument for test-network.sh):
CHUTNEY_DATA_BYTES=n sends n bytes per test connection (10 KBytes)--bytes nCHUTNEY_CONNECTIONS=n makes n test connections per client (1)--connections nCHUTNEY_HS_MULTI_CLIENT=1 makes each client connect to each HS (0)--hs-multi-client 1
Trac: Resolution: fixed toN/A Status: closed to reopened