-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
We want to setup a reproducible test case in order to profile performance of the relay. There are a number of metrics to capture, and test case steps to implement.
Measurements to capture
Host metrics
- CPU % utilized per core
- Memory usage
- Network packets in/out (at the NIC)
- Network bits in/out (at the NIC)
QuicR Metrics
Connection Level
- Number of objects transmitted
- Number of bytes transmitted
- Number of objects received
- Number of bytes received
Stream Level
- Number of objects transmitted
- Number of bytes transmitted
- Number of objects received
- Number of bytes received
- Max latency from publisher enqueue timestamp to receive (microseconds)
- Max latency from publisher transmit timestamp to receive (microseconds)
- Max receive inter-object arrival time (microseconds)
- Number of retransmits
- Number of packets lost
Environment Setup
- 1 relay host connection to >=1 client machines.
- 1500 MTU (Jumbo TBD)
- Set/discover optimal relay machine socket / buffer OS settings (TBD)
- Set/discover relay machine CPU Affinity (TBD)
The Test Case
1 publisher, N subscribers.
The goal is to discover max(N) where all data published is received in a timely manner by all subscribers.
Setup prior to measurement collection
- Publish audio track (
A), datagram, priority 1 - Publish video track (
B), stream per group, priority 2 - Establish N connections, subscribing to the published tracks (
A&B)
Begin Test
- 3 minute target run time
- Publisher sends video data (
A) at paced rate of 33ms, 10_000 bytes per object. Group rolls every 150 objects. - Publisher sends audio data (
B) at paced rate of 20ms, 120 bytes per object. Change group every object. - Subscribes receive data once published
Reactions are currently unavailable