Skip to content
This repository has been archived by the owner on Jul 30, 2024. It is now read-only.
/ NuGet.Jobs Public archive

[Orchestrator] Increase the connection limit #677

Merged
merged 1 commit into from
Nov 26, 2018
Merged

Conversation

loic-sharma
Copy link
Contributor

@loic-sharma loic-sharma commented Nov 21, 2018

The Orchestrator used the default connection limit of 2 per server. The Orchestrator processes messages in parallel, each of which may be downloading/uploading large files.

Part of NuGet/NuGetGallery#6624

Performance Test

I ran performance tests where I enqueued the same ~1,500 packages for validation. I then found how long it took the Orchestrator to download packages before and after this change:

Test Average 90% 99% 99.9%
Before 9.64s 19.87s 32.58s 37.05s
After 6.59s 13.90s 24.96s 33.14s
traces
| where timestamp > todatetime('2018-11-21T23:55:00.000')
| where timestamp < todatetime('2018-11-22T03:50:00.000')
| where cloud_RoleName == "NuGet.Services.Validation.Orchestrator"
| where message contains "Downloaded" and message contains "bytes in" and message contains "seconds for request"
| extend DownloadSeconds = todouble(customDimensions.DownloadElapsedTime) 
| extend AfterIncreasingConnectionLimit = iff(timestamp > todatetime('2018-11-22T02:10:00.000'), 1, 0)
| summarize count(), avg(DownloadSeconds), percentiles(DownloadSeconds, 90, 99, 99.9) by AfterIncreasingConnectionLimit
| order by AfterIncreasingConnectionLimit  asc

@loic-sharma loic-sharma merged commit 7abee8d into dev Nov 26, 2018
@loic-sharma loic-sharma deleted the loshar-locks branch November 26, 2018 18:35
joelverhagen added a commit that referenced this pull request Jul 31, 2020
)

This supports building other collectors that use dependency injection like Catalog2AzureSearch.
Also, the registration client code is not Azure Search specific so a more generic place is better.
This is a PR to move code around that has no impact on behavior.
It allows me to share code between other new collectors and Catalog2AzureSearch without pulling in all of the Azure Search dependencies.
joelverhagen pushed a commit that referenced this pull request Oct 26, 2020
The Orchestrator used the default connection limit of 2 per server. The Orchestrator processes messages in parallel, each of which may be downloading/uploading large files.

Part of NuGet/NuGetGallery#6624
joelverhagen added a commit that referenced this pull request Oct 26, 2020
)

This supports building other collectors that use dependency injection like Catalog2AzureSearch.
Also, the registration client code is not Azure Search specific so a more generic place is better.
This is a PR to move code around that has no impact on behavior.
It allows me to share code between other new collectors and Catalog2AzureSearch without pulling in all of the Azure Search dependencies.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants