PERFORMANCE.md 25 KB

Performance

The performance benchmark data and corelative commits are listed here.

Play RTMP benchmark

The data for playing RTMP was benchmarked by SB:

Update SRS Clients Type CPU Memory Commit
2014-12-07 2.0.67 10k(10000) players 95% 656MB code
2014-12-05 2.0.57 9.0k(9000) players 90% 468MB code
2014-12-05 2.0.55 8.0k(8000) players 89% 360MB code
2014-11-22 2.0.30 7.5k(7500) players 87% 320MB code
2014-11-13 2.0.15 6.0k(6000) players 82% 203MB code
2014-11-12 2.0.14 3.5k(3500) players 95% 78MB code
2014-11-12 2.0.14 2.7k(2700) players 69% 59MB -
2014-11-11 2.0.12 2.7k(2700) players 85% 66MB -
2014-11-11 1.0.5 2.7k(2700) players 85% 66MB -
2014-07-12 0.9.156 2.7k(2700) players 89% 61MB code
2014-07-12 0.9.156 1.8k(1800) players 68% 38MB -
2013-11-28 0.5.0 1.8k(1800) players 90% 41M -
Update SFU Clients Type CPU Memory Threads VM
2021-05-11 SRS/v4.0.105 4000 players ~94% x1 419MB 1 G5 8CPU
2021-05-11 NginxRTMP/v1.2.1 2400 players ~92% x1 173MB 1 G5 8CPU

Note: CentOS7, 600Kbps, ECS/G5-2.5GHZ(SkyLake), SRS/v4.0.105, NginxRTMP/v1.2.1.

Publish RTMP benchmark

The data for publishing RTMP was benchmarked by SB:

Update SRS Clients Type CPU Memory Commit
2014-12-04 2.0.52 4.0k(4000) publishers 80% 331MB code
2014-12-04 2.0.51 2.5k(2500) publishers 91% 259MB code
2014-12-04 2.0.49 2.5k(2500) publishers 95% 404MB code
2014-12-04 2.0.49 1.4k(1400) publishers 68% 144MB -
2014-12-03 2.0.48 1.4k(1400) publishers 95% 140MB code
2014-12-03 2.0.47 1.4k(1400) publishers 95% 140MB -
2014-12-03 2.0.47 1.2k(1200) publishers 84% 76MB code
2014-12-03 2.0.12 1.2k(1200) publishers 96% 43MB -
2014-12-03 1.0.10 1.2k(1200) publishers 96% 43MB -
Update SFU Clients Type CPU Memory Threads VM
2021-05-11 SRS/v4.0.105 2300 publishers ~89% x1 1.1GB 1 G5 8CPU
2021-05-11 NginxRTMP/v1.2.1 1300 publishers ~84% x1 198MB 1 G5 8CPU

Note: CentOS7, 600Kbps, ECS/G5-2.5GHZ(SkyLake), SRS/v4.0.105, NginxRTMP/v1.2.1.

Play HTTP FLV benchmark

The data for playing HTTP FLV was benchmarked by SB:

Update SRS Clients Type CPU Memory Commit
2014-05-25 2.0.171 6.0k(6000) players 84% 297MB code
2014-05-24 2.0.170 3.0k(3000) players 89% 96MB code
2014-05-24 2.0.169 3.0k(3000) players 94% 188MB code
2014-05-24 2.0.168 2.3k(2300) players 92% 276MB code
2014-05-24 2.0.167 1.0k(1000) players 82% 86MB -

RTC benchmark

The RTC benchmark data, by srs-bench:

Update SFU Clients Type CPU Memory Threads VM
2021-05-10 SRS/v4.0.105 2000 players ~94% x1 462MB 1 G7 2CPU
2021-05-10 SRS/v4.0.105 1000 players ~90% x1 180MB 1 G5 2CPU
2021-03-31 SRS/v4.0.87 800 players ~94% x1 444MB 1 G5 2CPU
2021-05-10 Janus/v0.11.1 700 players ~93% x2 430MB 24 G5 2CPU
2021-05-10 SRS/v4.0.105 1700 publishers ~92% x1 334MB 1 G7 2CPU
2021-05-10 SRS/v4.0.105 950 publishers ~92% x1 132MB 1 G5 2CPU
2021-03-31 SRS/v4.0.87 550 publishers ~86% x1 1.3GB 1 G5 2CPU
2021-05-10 Janus/v0.11.1 350 publishers ~93% x2 405MB 23 G5 2CPU

Note: CentOS7, 600Kbps, ECS/G5-2.5GHZ(SkyLake)/G7-2.7GHZ(IceLake), SRS/v4.0.87, SRS/v4.0.105, Janus/v0.11.1.

Latency benchmark

The latency between encoder and player with realtime config(CN, EN):

Update SRS Protocol VP6 H.264 VP6+MP3 H.264+MP3
2014-12-16 2.0.72 RTMP 0.1s 0.4s 0.8s 0.6s
2014-12-12 2.0.70 RTMP 0.1s 0.4s 1.0s 0.9s
2014-12-03 1.0.10 RTMP 0.4s 0.4s 0.9s 1.2s
2021-04-02 4.0.87 WebRTC x 80ms x x

2018-08-05, c45f72e, Refine HTTP-FLV latency, support realtime mode. 2.0.252

We used FMLE as encoder for benchmark. The latency of server was 0.1s+, and the bottleneck was the encoder. For more information, read bug #257.

Winlin 2021