Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Perf testing for AzCopy #2006

Merged
merged 9 commits into from
Mar 27, 2023
71 changes: 71 additions & 0 deletions perf-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
trigger: none
pr: none

stages:
- stage: Smallfiles
jobs:
- job: PerformanceTest
timeoutInMinutes: 360
strategy:
matrix:
Ubuntu-22:
imageName: "azcopyPerfUbuntu22"
Description: "AzCopy Perf Test"

pool:
name: "AzCopyPerfTestUbuntu"
demands:
- ImageOverride -equals $(imageName)

variables:
- group: AzCopyPerfTestTargets

steps:
- script: |
echo $(Description)
hostnamectl
displayName: 'Print Agent Info'

- task: GoTool@0
inputs:
version: '1.19.3'

- script: |
go build -o $GOROOT/bin/azcopy
azcopy --version
displayName: 'Build Azcopy'
env:
AZCOPY_AUTO_LOGIN_TYPE: $(AZCOPY_AUTO_LOGIN_TYPE)
AZCOPY_MSI_CLIENT_ID: $(AZCOPY_MSI_CLIENT_ID)
AZCOPY_CONCURRENCY_VALUE: "256"
AZCOPY_SHOW_PERF_STATES: "1"

- script: |
time azcopy copy $(Blob2BlobLargeFilesSrc) $(Blob2BlobLargeFilesDst) --recursive --block-size-mb=128 --log-level=ERROR --cap-mbps=40000
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we parse the output of time and put it in some file for all three test cases and then upload this file in our artifacts.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm looking for a better way to do it

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can refer to blobfuse2 for doing this as well

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In Blobfuse2, we also created perf scripts so then we can choose to run them manually also, would that be helpful here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you link an example?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

displayName: 'Blob2Blob - Large Files'
condition: always()
env:
AZCOPY_AUTO_LOGIN_TYPE: $(AZCOPY_AUTO_LOGIN_TYPE)
AZCOPY_MSI_CLIENT_ID: $(AZCOPY_MSI_CLIENT_ID)
AZCOPY_CONCURRENCY_VALUE: "256"
AZCOPY_SHOW_PERF_STATES: "1"

- script: |
time azcopy copy $(Blob2BlobSmallAndMedFilesSrc) $(Blob2BlobSmallAndMedFilesDst) --recursive --block-size-mb=128 --log-level=ERROR
displayName: 'Blob2Blob - Small to Medium sized files'
condition: always()
env:
AZCOPY_AUTO_LOGIN_TYPE: $(AZCOPY_AUTO_LOGIN_TYPE)
AZCOPY_MSI_CLIENT_ID: $(AZCOPY_MSI_CLIENT_ID)
AZCOPY_CONCURRENCY_VALUE: "256"
AZCOPY_SHOW_PERF_STATES: "1"

- script: |
time azcopy copy $(Blob2BlobSmallFilesSrc) $(Blob2BlobSmallFilesDst) --recursive --check-length=false --log-level=ERROR
displayName: 'Blob2Blob - Small Files'
condition: always()
env:
AZCOPY_AUTO_LOGIN_TYPE: $(AZCOPY_AUTO_LOGIN_TYPE)
AZCOPY_MSI_CLIENT_ID: $(AZCOPY_MSI_CLIENT_ID)
AZCOPY_CONCURRENCY_VALUE: "256"
AZCOPY_SHOW_PERF_STATES: "1"