Skip to main content
Version: 13.x (Current)

Performance

This section provides a brief overview of the service performance and recommendations about CPU and RAM requests and limits in order to reach optimal performances on common scenarios.

Results have been obtained through specific tests implementing a series of requests to the Notification Manager service.

Specifically, all the default events have been submitted randomly and repeatedly to the POST /notification-events/ endpoint to measure CPU and RAM usage.

Following our suggested requests and limits, you can serve more users by simply scaling the service horizontally, i.e. increasing the number of replicas proportionally to the expected traffic.

Test without notifications

This test suite helped us establish a baseline for the performance of the service when no notification is actually send. We tested this scenario without configuring any notification setting. Each test was left running for 5 minutes.

UsersReplicasRequests Per SecondAverage response time (in s)Median response time (in s)Min response time (in s)Max response time (ms)
511.210.30.0111
52120.30.0160
1021.620.40.0126

Test with notifications

This test suite was designed to measure the collective performance of the Notification Manager alongside the other services it depends on to send messages and set reminders. Each test sent on average an email and an SMS message to each participant - typically the doctor and the patient - and was left running for 5 minutes.

UsersReplicasRequests Per SecondAverage response time (in s)Median response time (in s)Min response time (in s)Max response time (s)
110133160
510.694160
520.42917160

The overall performance of the Notification Manager, in terms of response time, depends partially on the performance of the external services used to send messages and set reminders. The following table provides a recommended configuration for the services that mostly affect the Notification Manager performance. We recommending adding more replicas of each service, according to your usage scenario and level of traffic.

ServiceCPU Requests (in Mi)CPU Limits (in Mi)Memory Requests (in m)Memory Limits (in m)Notes
Notification Manager5012050100
Mail Notification Service256050100
SMS Service100100150150Remember to configure the rate limits appropriately.