generated from Ed-Fi-Exchange-OSS/Template-for-GitHub
-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[RND-535] Technical design for write performance benchmarking (#256)
* [RND-535] Restructuring documents * [RND-535] Creating script and instructions to execute bulk load performance * [RND-535] Adding information for bulk load to test upsert performance * [RND-535] Adding indications to run pipeclean and volume performance tests * [RND-535] Adding notes to run performance test suite * Fixing link to tickets * [RND-535] Changes after review on setup performance suite * [RND-535] Adjustments to write performance doc * Removing assessment role information in documentation * Load Bulk Load information * Rename folder * Removing duplicated folder
- Loading branch information
Showing
13 changed files
with
147 additions
and
58 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Performance Benchmarking | ||
|
||
## Contents | ||
|
||
* [Write Performance Benchmarking](./WRITE-PERFORMANCE.md) | ||
* [Read Performance Benchmarking](./READ-PERFORMANCE.md) |
31 changes: 31 additions & 0 deletions
31
docs/design/performance-benchmarking/SETUP-PERFORMANCE-SUITE.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# Setup Performance Testing Suite | ||
|
||
The performance testing suite was developed to support performance tuning of the | ||
ODS/API version 3.0 and newer. The ODS Platform team provides primary support | ||
for the tools in this test suite. | ||
|
||
Types of testing that can run with these tools: | ||
|
||
- Volume test: 30 minutes of Create, Update, and Delete requests distributed | ||
across many different resources. Goal: measure throughput. | ||
- Load test: longer run of the volume tests, with a higher number of clients. | ||
Goal: push to breaking point. | ||
- Soak test: 24 hours of volume tests. Goal: measure throughput over a long | ||
period of time to detect if there is degradation over time. | ||
- Pipeclean: Execute all API calls once with a single client (“user”), so that I | ||
know all test cases are functional and system components are running properly. | ||
- Get All Paging: retrieve all records from all (configured) resources. | ||
|
||
Steps to run against meadowlark: | ||
|
||
- Configure Meadowlark and verify that it's running. | ||
- Load Sample data with the Invoke-LoadGrandBend or Invoke-LoadPartialGrandBend | ||
scripts (otherwise, the tests will fail without some expected descriptors and | ||
education organization Ids). | ||
- Verify that the data has been loaded correctly through the API or from the | ||
database. | ||
- Clone the | ||
[Suite3-Performance-Testing](https://github.com/Ed-Fi-Exchange-OSS/Suite-3-Performance-Testing) | ||
repository. | ||
- Install [python](https://www.python.org/downloads/) and | ||
[poetry](https://python-poetry.org/docs/#installation). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# Write Performance Benchmarking | ||
|
||
## Running Write Performance for Meadowlark | ||
|
||
There are two ways to analyze write performance for Meadowlark: | ||
|
||
1. Bulk Loading. | ||
2. Run Performance Testing Suite. | ||
|
||
## Bulk Loading | ||
|
||
> **Note** To run the bulk loading tests it's important to start with a clean | ||
> database. | ||
To load the data, there are functions to load the GrandBend and PartialGrandBend | ||
data sets into Meadowlark. | ||
|
||
To measure the execution time, run the script | ||
[Bulk-LoadPerformance.ps1](../../../eng/performance/BulkLoad-Performance.ps1). | ||
|
||
The script receives two parameters: | ||
|
||
- The **Template** that you desire to run (defaults to GrandBend). | ||
- The **Update** flag specifies if you desire to measure the creation or the | ||
update of the resources (defaults to false). | ||
|
||
This script will enter the data into Meadowlark and will print the execution | ||
time. | ||
|
||
> **Warning** The LoadGrandBend script is returning errors when processing some data ([RND-586](https://tracker.ed-fi.org/browse/RND-586)). | ||
List of issues: | ||
|
||
- [RND-583](https://tracker.ed-fi.org/browse/RND-583) | ||
|
||
## Performance Testing Suite | ||
|
||
There are two performance test types that paths that cover the write | ||
performance, Pipeclean Tests and Volume Tests. | ||
|
||
### Setup | ||
|
||
> **Warning** | ||
> _For now_: The tests will be executed with | ||
> [Suite3-Performance-Testing](https://github.com/Ed-Fi-Exchange-OSS/Suite-3-Performance-Testing) | ||
> on branch [meadowlark-updates](https://github.com/Ed-Fi-Exchange-OSS/Suite-3-Performance-Testing/tree/meadowlark-updates) | ||
> to have the changes required for Meadowlark. Vinaya and/or StephenF can verify when to remove | ||
> this temporary note and use the `main` branch again. | ||
- Follow steps to [setup performance suite](./SETUP-PERFORMANCE-SUITE.md). | ||
- Go to /src/edfi_performance_test folder and run `poetry install`. | ||
- Create a user in meadowlark with the role of `vendor`. Save key and secret. | ||
- Create a .env file based on | ||
/src/edfi_paging_test/edfi_paging_test/.env.example with your endpoint, and the previously created key | ||
and secret. Set the values required for Meadowlark. | ||
- Run `poetry run python edfi_performance_test -t "VALUE"` where value can be | ||
"pipeclean" or "volume". [More details](https://github.com/Ed-Fi-Exchange-OSS/Suite-3-Performance-Testing/tree/main/src/edfi-performance-test) | ||
|
||
> **Warning** Currently there are a list of problems to run the performance tests, | ||
> therefore the process will not finish and you have to manually terminate the execution. | ||
List of issues: | ||
|
||
- [RND-583](https://tracker.ed-fi.org/browse/RND-583) | ||
- [RND-584](https://tracker.ed-fi.org/browse/RND-584) | ||
- [RND-585](https://tracker.ed-fi.org/browse/RND-585) | ||
- [PERF-298](https://tracker.ed-fi.org/browse/PERF-298) | ||
|
||
After fixing this errors, the tests should be executed as part of [RND-580](https://tracker.ed-fi.org/browse/RND-580) |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# Licensed to the Ed-Fi Alliance under one or more agreements. | ||
# The Ed-Fi Alliance licenses this file to you under the Apache License, Version 2.0. | ||
# See the LICENSE and NOTICES files in the project root for more information. | ||
<# | ||
.DESCRIPTION | ||
Measure Bulk Load Performance | ||
#> | ||
param( | ||
[ValidateSet('GrandBend', 'PartialGrandBend')] | ||
$Template = "GrandBend", | ||
|
||
[Switch] | ||
$Update | ||
) | ||
|
||
$originalLocation = Get-Location | ||
Set-Location -Path "../bulkLoad" | ||
|
||
if($Update) { | ||
# Run First to create the data (Without measuring) | ||
Write-Host "Creating data" | ||
Invoke-Expression "./Invoke-Load$Template.ps1" | ||
} | ||
|
||
Write-Host "Starting Measure for $Template..." | ||
$timing = Measure-Command { Invoke-Expression "./Invoke-Load$Template.ps1" } | ||
|
||
Write-Output "Total Time: $timing" | ||
|
||
Set-Location -Path $originalLocation |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters