Testing Relay Proxy performance
Read time: 1 minute
Last edited: Jan 05, 2022
This topic explains how to measure performance of your instance of the Relay Proxy against benchmarks we tested internally.
Performance is always dependent on specific workload and environment. You can run benchmarks against your own infrastructure and LaunchDarkly configuration for more accurate information.
Locust tests events, client-side, and server-side SDKs. Locust's internal nomenclature uses the term "users" to refer to simulated SDKs. Do not mistake Locust's "users" with LaunchDarkly's users. They are not the same thing.
A single server-side SDK can support many customers. In the case of client-side SDKs, this does correlate with a specific user, because a client-side SDK is configured for a particular user.
We recommend that you configure the Relay Proxy to be highly available, which reduces load on any particular server. To learn more, read Best practices for using the relay proxy.
The Relay Proxy has very low baseline requirements. An idle Relay Proxy serving no SDKs consumes approximately 11 mebibytes of memory, and has nearly zero CPU utilization.
The Relay Proxy's resource usage increases based on the size of your flags or segments, number of SDK connections, and events it proxies.
The table below outlines the Relay Proxy's system requirements under different amounts of simulated load. Your specific configuration will vary from what's shown in the table. These requirements are guidelines, not strict performance guarantees or limitations:
|SDK count||CPU utilization||Memory utilization||Upload||Download||Median||P90|
We conducted these tests on AWS with an
m4.xlarge instance hosting the Relay Proxy. An
m4.xlarge instance has four threads, and 16 GiB of memory. It is classified as "high" network performance. The LaunchDarkly environment contains ten untargeted flags.