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

Number of packets is significantly increased for inbound and outbound calls from .NET 8 to .NET 9 #110822

Open
dlevy-chipotle opened this issue Dec 18, 2024 · 3 comments
Labels
area-System.Net tenet-performance Performance related issue untriaged New issue has not been triaged by the area owner

Comments

@dlevy-chipotle
Copy link

Description

During preliminary testing of a core workload upgrade from .NET 8 to .NET 9, we noticed that our service mesh was running significantly hotter, leading to throttling.

Upon closer investigation, we discovered that the number of packets in .NET 9 is significantly higher than in .NET 8 for the same workload, both for packets received and packets sent. In addition, the packet length in .NET 9 is significantly smaller on average than .NET 8. Finally, we found significantly higher connection counts in .NET 9 over .NET 8.

Configuration

  • .NET SDK 9.0.101
  • dotnet publish -c Release -o out -r linux-musl-x64 -p:PublishReadyToRun=true
  • Alpine Linux containers

Regression?

This appears to be a regression from dotnet sdk 8.0.403 and all previous versions.

Data

Packets Sent/Received

.NET 8

Image

.NET 9

Image

Established Connections and /second

.NET 8

Image

.NET 9

Image

Overall Stats for Client -> Server

.NET 8

Image

.NET 9

Image

Packet Length Comparison

Image

@dlevy-chipotle dlevy-chipotle added the tenet-performance Performance related issue label Dec 18, 2024
@dotnet-policy-service dotnet-policy-service bot added the untriaged New issue has not been triaged by the area owner label Dec 18, 2024
@rzikm
Copy link
Member

rzikm commented Dec 19, 2024

I think we will need more information about your specific workload. Even better, if you could simplify it to a simple self-contained repro project we could run locally, it would make our investigation a lot easier and faster.

@rzikm rzikm added the needs-author-action An issue or pull request that requires more info or actions from the author. label Dec 19, 2024
@dlevy-chipotle
Copy link
Author

@rzikm makes perfect sense. We'll work on putting together a generic project that demonstrates the issue.

@dotnet-policy-service dotnet-policy-service bot removed the needs-author-action An issue or pull request that requires more info or actions from the author. label Dec 19, 2024
@dlevy-chipotle
Copy link
Author

@rzikm please see the attached zip. It's composed of two Ready2Run projects, one targeting .NET 8 and one targeting .NET 9, both set to publish as linux-musl-x64 self-contained projects. There's also a dockerfile for each if you'd prefer.

We did run both sample projects through load tests and they resulted in higher packet counts in the .NET 9 version.

PacketTest_compressed.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-System.Net tenet-performance Performance related issue untriaged New issue has not been triaged by the area owner
Projects
None yet
Development

No branches or pull requests

3 participants