Back to Srs

Performance

trunk/doc/PERFORMANCE.md

6.0.488.8 KB
Original Source

Performance

Here are the listed performance benchmark data with corresponding commits for your reference.

Play RTMP benchmark

The following data reflects the performance of RTMP playback, as tested using the srs-bench tool:

UpdateSRSClientsTypeCPUMemoryCommit
2014-12-072.0.6710k(10000)players95%656MBcode
2014-12-052.0.579.0k(9000)players90%468MBcode
2014-12-052.0.558.0k(8000)players89%360MBcode
2014-11-222.0.307.5k(7500)players87%320MBcode
2014-11-132.0.156.0k(6000)players82%203MBcode
2014-11-122.0.143.5k(3500)players95%78MBcode
2014-11-122.0.142.7k(2700)players69%59MB-
2014-11-112.0.122.7k(2700)players85%66MB-
2014-11-111.0.52.7k(2700)players85%66MB-
2014-07-120.9.1562.7k(2700)players89%61MBcode
2014-07-120.9.1561.8k(1800)players68%38MB-
2013-11-280.5.01.8k(1800)players90%41M-
UpdateSFUClientsTypeCPUMemoryThreadsVM
2021-05-11SRS/v4.0.1054000players~94% x1419MB1G5 8CPU
2021-05-11NginxRTMP/v1.2.12400players~92% x1173MB1G5 8CPU

Note: The test was conducted on CentOS7 with a video bitrate of 600Kbps and CPU of G5-2.5GHZ (SkyLake).

Publish RTMP benchmark

The following data reflects RTMP publishing performance, as tested using the srs-bench tool:

UpdateSRSClientsTypeCPUMemoryCommit
2014-12-042.0.524.0k(4000)publishers80%331MB[code][p5]
2014-12-042.0.512.5k(2500)publishers91%259MB[code][p4]
2014-12-042.0.492.5k(2500)publishers95%404MB[code][p3]
2014-12-042.0.491.4k(1400)publishers68%144MB-
2014-12-032.0.481.4k(1400)publishers95%140MB[code][p2]
2014-12-032.0.471.4k(1400)publishers95%140MB-
2014-12-032.0.471.2k(1200)publishers84%76MB[code][p1]
2014-12-032.0.121.2k(1200)publishers96%43MB-
2014-12-031.0.101.2k(1200)publishers96%43MB-
UpdateSFUClientsTypeCPUMemoryThreadsVM
2021-05-11SRS/v4.0.1052300publishers~89% x11.1GB1G5 8CPU
2021-05-11NginxRTMP/v1.2.11300publishers~84% x1198MB1G5 8CPU

Note: The test was conducted on CentOS7 with a video bitrate of 600Kbps and CPU of G5-2.5GHZ (SkyLake).

##Play HTTP FLV benchmark

Here is the data for HTTP-FLV playback, as tested using the srs-bench tool:

UpdateSRSClientsTypeCPUMemoryCommit
2014-05-252.0.1716.0k(6000)players84%297MB[code][p20]
2014-05-242.0.1703.0k(3000)players89%96MB[code][p19]
2014-05-242.0.1693.0k(3000)players94%188MB[code][p18]
2014-05-242.0.1682.3k(2300)players92%276MB[code][p17]
2014-05-242.0.1671.0k(1000)players82%86MB-

RTC benchmark

The following data reflects WebRTC playback performance, as tested using the srs-bench tool:

UpdateSFUClientsTypeCPUMemoryThreadsVM
2021-05-10SRS/v4.0.1052000players~94% x1462MB1G7 2CPU
2021-05-10SRS/v4.0.1051000players~90% x1180MB1G5 2CPU
2021-03-31SRS/v4.0.87800players~94% x1444MB1G5 2CPU
2021-05-10Janus/v0.11.1700players~93% x2430MB24G5 2CPU
2021-05-10SRS/v4.0.1051700publishers~92% x1334MB1G7 2CPU
2021-05-10SRS/v4.0.105950publishers~92% x1132MB1G5 2CPU
2021-03-31SRS/v4.0.87550publishers~86% x11.3GB1G5 2CPU
2021-05-10Janus/v0.11.1350publishers~93% x2405MB23G5 2CPU

Note: The test was conducted on CentOS7 with a video bitrate of 600Kbps and CPU of G5-2.5GHZ (SkyLake).

Latency benchmark

The following benchmark data shows end-to-end latency tested using the srs-bench tool with SRS running in real-time configuration(CN, EN):

UpdateSRSProtocolVP6H.264VP6+MP3H.264+MP3
2014-12-162.0.72RTMP0.1s0.4s[0.8s][p15][0.6s][p16]
2014-12-122.0.70RTMP[0.1s][p13][0.4s][p14]1.0s0.9s
2014-12-031.0.10RTMP0.4s0.4s0.9s1.2s
2021-04-024.0.87WebRTCx80msxx

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

Note: Multiple factors can impact end-to-end latency, such as the encoder, server, protocol, player, and network.

Note: VLC player is not recommended for low latency use scenarios due to its large buffer, resulting in significant latency.

Winlin 2021