-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Closed
Labels
area-System.Net.Quicin-prThere is an active PR which will close this issue when it is mergedThere is an active PR which will close this issue when it is mergedtenet-performancePerformance related issuePerformance related issue
Milestone
Description
Description
gRPC HTTP/3 benchmark performance drastically decreased. It looks like something with stream/connection shutdown is taking forever, which affects RPS calculation. (And slow shutdown doesn't seem like a good thing regardless of RPS calculations)
Configuration
Linux citrine perf machine, crank commands below
Regression?
Yes, something in the following changes caused HTTP/3 gRPC tests to be really slow (shutdown takes forever which causes the RPS calculation to be longer)
b7fca07...1cb2f42
Data
Changing only the runtime version used by the client shows a difference in RPS.
Before the changes:
~3.8m RPS
crank command
crank --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/build/ci.profile.yml --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/scenarios/grpc.benchmarks.yml --scenario grpcaspnetcoreserver-grpcnetclient --profile intel-lin-app --profile intel-load-load --variable scenario=serverstreaming --variable requestSize=0 --variable responseSize=0 --variable streams=70 --variable connections=20 --variable threads=20 --variable protocol=h3 --application.framework net7.0 --load.framework net7.0 --application.options.collectCounters true --load.runtimeVersion 7.0.0-preview.7.22362.12
After the changes:
~300k RPS
crank command
crank --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/build/ci.profile.yml --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/scenarios/grpc.benchmarks.yml --scenario grpcaspnetcoreserver-grpcnetclient --profile intel-lin-app --profile intel-load-load --variable scenario=serverstreaming --variable requestSize=0 --variable responseSize=0 --variable streams=70 --variable connections=20 --variable threads=20 --variable protocol=h3 --application.framework net7.0 --load.framework net7.0 --application.options.collectCounters true --load.runtimeVersion 7.0.0-rc.1.22363.10
Analysis
I narrowed down the changes in runtime to b7fca07...1cb2f42 which contains some Quic API changes that may be involved in the regression.
rzikm, CarnaViire and xsoheilalizadeh
Metadata
Metadata
Assignees
Labels
area-System.Net.Quicin-prThere is an active PR which will close this issue when it is mergedThere is an active PR which will close this issue when it is mergedtenet-performancePerformance related issuePerformance related issue