Skip to content

20%+ throughput regression in goldilocks scenarios #98021

Closed
@MichalStrehovsky

Description

@MichalStrehovsky

See https://aka.ms/aspnet/nativeaot/benchmarks.

Stage2Aot scenario:

image

Stage1GrpcAot scenario:

image

I narrowed this down using crank to:

Last good:

crank --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/scenarios/goldilocks.benchmarks.yml --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/build/ci.profile.yml --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/scenarios/steadystate.profile.yml --scenario todosapipublishaot --profile intel-lin-app --profile intel-load-load --profile intel-db-db --application.packageReferences Microsoft.DotNet.ILCompiler=9.0.0-preview.2.24074.3 --application.environmentVariables DOTNET_GCDynamicAdaptationMode=1 --application.framework net9.0 --application.options.collectCounters true --application.aspNetCoreVersion 9.0.0-preview.2.24073.3 --application.runtimeVersion 9.0.0-preview.2.24074.3 --application.sdkVersion 9.0.100-preview.2.24074.1

First bad:

crank --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/scenarios/goldilocks.benchmarks.yml --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/build/ci.profile.yml --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/scenarios/steadystate.profile.yml --scenario todosapipublishaot --profile intel-lin-app --profile intel-load-load --profile intel-db-db --application.packageReferences Microsoft.DotNet.ILCompiler=9.0.0-preview.2.24074.10 --application.environmentVariables DOTNET_GCDynamicAdaptationMode=1 --application.framework net9.0 --application.options.collectCounters true --application.aspNetCoreVersion 9.0.0-preview.2.24073.3 --application.runtimeVersion 9.0.0-preview.2.24074.10 --application.sdkVersion 9.0.100-preview.2.24074.1

Here's the RPS numbers I got for the various builds with 3 attempts each:

24074.1 24074.3 24074.10
222,358 214,822 187,955
215,877 216,408 157,982
223,201 215,822 215,307

This puts the regression between builds 24074.3 and 24074.10.

That corresponds to this commit range:

96dd3d1...b47fdea

My suspect is #97227 that did changes to various waits on native AOT. Cc @kouvel @VSadov @sebastienros

Metadata

Metadata

Assignees

Type

No type

Projects

Status

No status

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions