Load Testing: mod-quick-marc

Load Testing: mod-quick-marc

https://folio-org.atlassian.net/browse/MODQM-94

Test plan

Requests:

  • GET /records-editor/records?instanceId=<instanceId> (get quick-marc record)

  • PUT /records-editor/records/<parsedRecordId> (update bib marc record)

  • POST /records-editor/records (create new bib marc record)

Thread properties:

  • Number of threads (users): 50/70/100

  • Ramp-up period (seconds): 30

  • Loop count: 1

Additional requirement:

  • measure the amount of memory consumed by the module

File with test plan: 

Test execution

Module startup

The peak memory usage: 299Mb

The peak CPU usage: 87.4%

50 threads

The peak memory usage: 325Mb

The peak CPU usage: 22.3%

 

No leak suspects found in heap dump:

Label

# Samples

Average

Median

90% Line

95% Line

99% Line

Min

Max

Error %

Throughput

Received KB/sec

Sent KB/sec

Label

# Samples

Average

Median

90% Line

95% Line

99% Line

Min

Max

Error %

Throughput

Received KB/sec

Sent KB/sec

GET

50

2564

1986

5154

5388

6826

72

6826

0.00%

1.89215

9.09

0.92

PUT

50

6538

7684

9697

9771

10230

846

10230

0.00%

1.55749

0.47

7.78

POST

50

26543

25447

39828

40332

41817

5873

41817

0.00%

0.69443

0.36

3.44

TOTAL

150

11881

7449

30004

36834

41328

72

41817

0.00%

2.02366

3.79

7.04

70 threads

The peak memory usage: 253Mb

The peak CPU usage: 18%

 

No leak suspects found in heap dump: 

Label

# Samples

Average

Median

90% Line

95% Line

99% Line

Min

Max

Error %

Throughput

Received KB/sec

Sent KB/sec

Label

# Samples

Average

Median

90% Line

95% Line

99% Line

Min

Max

Error %

Throughput

Received KB/sec

Sent KB/sec

GET

70

2239

2450

3861

4098

4460

108

4695

0.00%

2.07734

6.64

1.01

PUT

70

43367

59999

60104

60154

60200

18858

60212

54.29%

0.76921

0.3

2.6

POST

70

55984

60023

72098

73298

76878

18061

78045

97.14%

0.52993

0.22

1.77

TOTAL

210

33863

32063

60086

60200

74728

108

78045

50.48%

1.36596

1.82

3.29

The reason for the request failures is the SRM stopped respond to quickMarc requests

 

There is a problem in quickMarc with handling database connections. For some reason, several connections are live too long and this leads to errors when there are no open DB connections in the pool. It may be a problem with transaction management for record update requests.