Performance#
The performance of the system architecture is quite good, capable of supporting millions of daily active users. Internal testing measured using budget level hardware with only a single CPU core (and 2-4GB RAM) for the databases and two CPU cores (and 2-8GB RAM) for the service showed performance of greater than 600 requests per second for record insert operations, 200 requests per second for record set retrieval and an average of 500 requests per second for combined read/write operations. This roughly equates to 200,000 concurrent users (CCU) and 4.8M daily active users (DAU).
The following sections detail these results and what you can expect with different hardware configurations:
Record Insert Test#
This test simulates the insertion of leaderboard records by a defined set of simulated users:
Service Resources |
DB Resources |
Service Usage |
MongoDB Usage |
Redis Usage |
Requests per Second |
CCU |
|---|---|---|---|---|---|---|
2 vCPUs / 2GB |
1 vCPUs / 2GB |
53% (CPU) / 19% (RAM) |
74% (CPU) / 29% (RAM) |
15% (CPU) / 34% (RAM) |
580 |
174,004 |
2 vCPUs / 2GB |
2 vCPUs / 4GB |
56% (CPU) / 17% (RAM) |
25% (CPU) / 11% (RAM) |
4% (CPU) / 8% (RAM) |
624 |
187,147 |
4 vCPUs / 8GB |
2 vCPUs / 4GB |
30% (CPU) / 6% (RAM) |
36% (CPU) / 30% |
9% (CPU) / 27% (RAM) |
681 |
204,257 |
Sorted Record Retrieval Test#
The test simulates retrieval of top 100 sorted leaderboard records by a set of simulated users:
Service Resources |
DB Resources |
Service Usage |
MongoDB Usage |
Redis Usage |
Requests per Second |
CCU |
|---|---|---|---|---|---|---|
2 vCPUs / 2GB |
1 vCPUs / 2GB |
51% (CPU) / 16% (RAM) |
1% (CPU) / 31% (RAM) |
55% (CPU) / 35% (RAM) |
206 |
61,680 |
4 vCPUs / 8GB |
2 vCPUs / 4GB |
26% (CPU) / 8% (RAM) |
1% (CPU) / 38% (RAM) |
31% (CPU) / 34% (RAM) |
253 |
75,797 |
Combined Record Insert & Sorted Retrieval Test#
This test simulates the insertion of leaderboard records as well as the retrieval of the top 100 sorted records by a set of simulated users:
Service Resources |
DB Resources |
Service Usage |
MongoDB Usage |
Redis Usage |
Requests per Second |
CCU |
|---|---|---|---|---|---|---|
2 vCPUs / 2GB |
1 vCPUs / 2GB |
57% (CPU) / 19% (RAM) |
35% (CPU) / 32% (RAM) |
40% (CPU) / 41% (RAM) |
509 |
152,680 |
4 vCPUs / 8GB |
2 vCPUs / 4GB |
28% (CPU) / 8% (RAM) |
36% (CPU) / 38% (RAM) |
20% (CPU) / 37% (RAM) |
613 |
183,954 |