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

Add help copy explaining instance metrics #2714

Open
charliepark opened this issue Feb 28, 2025 · 1 comment
Open

Add help copy explaining instance metrics #2714

charliepark opened this issue Feb 28, 2025 · 1 comment
Milestone

Comments

@charliepark
Copy link
Contributor

We added several new metrics, including CPU utilization charts that incorporate different states — running, emulating, waiting, idling. We should add some help copy to explain them, and link to relevant documentation for more.

@david-crespo
Copy link
Collaborator

david-crespo commented Mar 5, 2025

I asked in Q&A for more info and got some.

My question

we are putting OxQL-powered CPU stats in the console and I'm thinking about how to briefly describe runidlewaiting, and emulation for the user. we could leave idle out if it's generally 100 minus the other three, but even so that leaves the other three to describe

run seems to correspond in the happy case to what you'd see in htop inside the guest. waiting is about contention and hopefully is near zero most of the time? I'm least clear on emulation

we will probably end up with two levels of description: short ones for right under the chart titles and longer ones for popovers or the docs site

@gjcolombo

I think that's basically right:

  • "run" means "this vCPU is running guest instructions"
  • "idle" means "this vCPU has halted"
  • "waiting" means "the host has a thread that wants to run this vCPU, but the system isn't scheduling that thread right now," probably due to contention of some kind
  • "emulation" means "this vCPU did something that forced it to exit the guest, and now the host is taking care of whatever that was"--think "did some I/O," "executed an instruction like CPUID that the host wants to intercept and handle," and so forth

Even more discussion of the emulation state: oxidecomputer/propolis#855 (comment)

Waiting is never going to be zero

I thought VMs were in some sense locked to CPUs. I asked whether that makes waiting less likely.

rm: They aren't really tied right now. Even though we want to do better allocation and core aware scheduling. Ultimately we bounce you around a lot and even if it was, you can still end up in waiting for other reasons.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants