Server configuration

Server Config A: 3 c5.2xlarge servers. 1 server with Rhino and Cassandra colocated. Single Cassandra node. 2 servers for client simulator.

Server Config B: 6 c5.2xlarge servers. 1 server for Rhino. 3 servers for Cassandra. Replicated 3-node Cassandra cluster. 2 servers for client simulator.

Server Config C: 3 c5.2xlarge servers. 1 server with Rhino and Cassandra colocated. Single Cassandra node. 2 servers for client simulator. All caching disabled.

Results

SPS - Sessions per second

RPS - Requests per second

Rhino Performance

Test SPS RPS Duration (hours) Server config CPU (average) Heap (average)

1

1000

1800

2

A

280%

1.4G

2

1100

1980

2

A

310%

1.4G

3

1200

2160

2

A

330%

1.4G

4

1000

1800

2

B

300%

1.5G

5

1200

2160

2

B

320%

1.5G

6

1400

2520

2

B

380%

1.5G

7

1000

1800

2

C

360%

1.5G

Note The CPU reading is for the ShCM JVM, not the whole host.

Client latency in milliseconds grouped by percentile

Test SPS RPS Duration (hours) Server config 50th 75th 90th 95th 99th Max

1

1000

1800

2

A

6

17.9

58.8

119

264

757

2

1100

1980

2

A

20.1

84.7

292

438

655

1210

3

1200

2160

2

A

156

686

1190

1530

2810

3889

4

1000

1800

2

B

4.3

5.2

15.6

37.1

119

837.9

5

1200

2160

2

B

4.2

5.8

22.4

41.9

131

367.2

6

1400

2520

2

B

4.8

9.8

37.4

63.7

170

476

7

1000

1800

2

C

2.8

21.5

88.4

139

235

717

Cassandra Disk Usage

All tests had the Cassandra disk usage monitored. The disk usage profile appeared to be the same for all tests.

The default Cassandra settings allow for the commitlog to grow to 8GB before being cleaned up.

Cassandra disk usage maxed at around 9GB for each test.

For the tests with multiple Cassandra nodes in a cluster, each node/server showed the same disk usage profile.

Conclusion

Testing showed that a single ShCM node operating with a 3-node replicated Cassandra cluster can sustainably handle 2160 requests per seconds from a subscriber data pool of 1m, using around 300% CPU with reasonable request latencies (test 5).

Even in the case the RPS was 2520 (test 6) the latency and CPU usage were satisfactory, inside of acceptable ranges.

Previous page