• HOME
  • INTEGRATIONS
  • SDKS
  • GUIDES
  • API DOCS
No results for ""
EXPAND ALL
launchdarkly.com

EDIT ON GITHUB

Testing Relay Proxy performance

Read time: 1 minute
Last edited: Mar 04, 2021

Overview

This topic explains how to measure performance of your instance of the Relay Proxy against benchmarks we tested internally.

We developed a load testing framework for the Relay Proxy based on Locust. You can find it on GitHub.

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.

Minimum system requirements

The Relay Proxy has very low baseline requirements. An idle Relay Proxy serving no SDKs consumes approximitely 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.

System requirements under load

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 countCPU utilizationMemory utilizationUploadDownloadMedianP90
1001.01%30.32MiB925kBs955kBs2ms5ms
100040.9%205.4MiB8.33MBs9.08MBs2ms7ms
50008.01%941.9MiB39.8MBs45MBs470ms5400ms

We conducted these tests on AWS with an m4.xlarge instance hosting the Relay Proxy. An m4.xlarge instance has 4 threads, and 16 GiB of memory. It is classified as "high" network performance. The LaunchDarkly environment contains 10 untargeted flags.