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

A customer can determine what configuration they need from a running app #5490

Closed
richlander opened this issue Oct 29, 2020 · 2 comments
Closed
Labels
bulk-closed Priority:1 Work that is critical for the release, but we could probably ship without Team:Runtime User Story A single user-facing feature. Can be grouped under an epic.

Comments

@richlander
Copy link
Member

richlander commented Oct 29, 2020

We expect that most .NET users set their containers with higher values than they want, and then progressively and iteratively decrease CPU and memory values to satisfy cost goals. This is a fine approach, but are likely more data-oriented, and reliable ways to get to more optimum values more quickly.

There are two primary (complementary) approaches to this:

  • Ensure that valuable metrics are exposed so that developers can monitor their apps for performance that are most aligned with docker resource limits. We also need to document what outcomes people can expect if they "cut it close" for either CPU or memory.
  • Test many configurations against some form of success metrics using chaos engineering approaches. Keep on reducing docker resource limits until containers reliably get killed or don't satisfy desired metrics, in production. Containers are supposed to be stateless, so embrace that.

For this user story, we will focus on exposing important metrics:

  • Peak GC heap memory
  • Peak GC CPU time
  • % CPU usage, relative to limits
  • % memory usage, relative to limits

We will write documentation that safe and unsafe zones for numbers. Safe zones (with margin) would suggest that there are opportunities to reduce limits further. The runtime will only be responsible for reporting point-in-time information. Monitoring tools and databases need to be used to determine time-based patterns (maybe Thursday evenings represent a peek for your site that needs to managed outside of fine-grained runtime monitor and configuration).

We will also write documentation that describes how to create stateless containers that enable being safely killed in production.

@richlander richlander added User Story A single user-facing feature. Can be grouped under an epic. Priority:1 Work that is critical for the release, but we could probably ship without labels Oct 29, 2020
@danmoseley
Copy link
Member

@shirhatti both our open telemetry stories are children of this, but they are P0 and this is P1. Should they have their own, P0 rated Epic?
Cc @ericstj

@mairaw
Copy link
Contributor

mairaw commented May 26, 2023

Bulk closing .NET 6 epics and user stories. If you think this issue was closed in error, please reopen the issue and update it accordingly.

@mairaw mairaw closed this as completed May 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bulk-closed Priority:1 Work that is critical for the release, but we could probably ship without Team:Runtime User Story A single user-facing feature. Can be grouped under an epic.
Projects
None yet
Development

No branches or pull requests

4 participants