Commit 8fe7a26
Add MoQ performance test client
Summary:
This adds a performance test client for MoQ/moxygen that helps determine the maximum number of subscribers that can subscribe to a given track at the relay before it affects latency.
**Features:**
- Takes relay URL, quic_transport boolean, target_subscribers, and duration flags
- Uses moq-test scheme with configurable parameters:
- one-stream-per-group (ForwardingPreference::ONE_SUBGROUP_PER_GROUP)
- object_interval: 33ms
- I-frame size: 7,576 bytes
- P-frame size: 1,894 bytes
- 30 objects per group (1 group per second)
- end group of 60
- DELIVERY_TIMEOUT parameter: 10ms
- Gradually adds subscribers over 10 seconds to reach target_subscribers
- Each subscriber uses its own QUIC or WebTransport connection
- All subscribers run on a single event base
- Reports statistics every 1 second (subscriber count, objects/s, bytes/s)
- Automatically terminates if any subscriber detects a stream reset
- Prints comprehensive test summary at the end
**Implementation:**
- `MoQPerfTestClient`: Main test orchestrator managing multiple subscribers
- `SubscriberState`: Tracks state and statistics for each individual subscriber
- Uses `evb_->timer()` for scheduling periodic tasks
- Uses `loop()` instead of `loopForever()` - event loop stops when all work completes
- Calls `drain()` after subscribe so client exits when publisher ends
---
> Generated by [Confucius Code Assist (CCA)](https://www.internalfb.com/wiki/Confucius/Analect/Shared_Analects/Confucius_Code_Assist_(CCA)/)
[Session](https://www.internalfb.com/confucius?session_id=a39574cc-c037-11f0-98c5-1bf0a87c8091&tab=Chat), [Trace](https://www.internalfb.com/confucius?session_id=a39574cc-c037-11f0-98c5-1bf0a87c8091&tab=Trace)
Differential Revision: D869285901 parent 7dbec47 commit 8fe7a26
5 files changed
Lines changed: 953 additions & 0 deletions
File tree
- moxygen
- moqtest
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| 62 | + | |
62 | 63 | | |
63 | 64 | | |
64 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
100 | 133 | | |
0 commit comments