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

ui: performance debugging brain dump #23379

Closed
petermattis opened this issue Mar 5, 2018 · 9 comments
Closed

ui: performance debugging brain dump #23379

petermattis opened this issue Mar 5, 2018 · 9 comments
Assignees
Labels
A-webui-general Issues on the DB Console that span multiple areas or don't have another clear category. C-investigation Further steps needed to qualify. C-label will change. meta-issue Contains a list of several other issues. no-issue-activity X-stale

Comments

@petermattis
Copy link
Collaborator

While investigating TPC-C performance recently I had the opportunity to interact with the admin UI and found it wanting for portions of my investigation. This is a brain dump of some of the questions which I wanted to answer:

  • Which nodes are overloaded? Some of the graphs show a timeseries per node while others are aggregate. For example, the "commit" latency on the Storage dashboard show per-node numbers. These were highlighting that 1 or 2 nodes out of 16 were slow. It would be useful to be able to switch from per-node to aggregate display for any graph. The slow commit latencies were caused by excessive CPU usage on those nodes. The excessive CPU usage was caused by too many leaseholders on those nodes. And in later debugging another issue caused excessive CPU usage which was a small table was spread over only a few nodes.
  • What table data is on a node? How many ranges? Which are the most frequently accessed ranges on a node? Are those frequently accessed ranges being read or written to. These questions tie into the first bullet in trying to understand why a node in a cluster seems to be under more load than its peers. Some of this can be understood via SHOW TESTING_RANGES.
  • What are the hot ranges across the entire cluster? Where are those ranges located? What tables do those ranges correspond to?
  • For a given table: How is the data spread across the nodes in the cluster? How big are the indexes (including the primary index)?

I can give more context for the above. Ask me questions.

@a-robinson
Copy link
Contributor

It would be useful to be able to switch from per-node to aggregate display for any graph.

I've wanted to be able to get a view that shows all the node/store lines separately on multiple occasions before. Clicking through each per-node view does the job, but it's a lot more work and a lot tougher to compare between nodes.

@petermattis
Copy link
Collaborator Author

  • From the "Databases" tab, I want to be able to click through on a table to see a list of ranges and the size of each range. During debugging I noticed some tables had more ranges than expected and I wanted to understand why. For example, a 10MiB table had 3 ranges.

@couchand
Copy link
Contributor

couchand commented Mar 5, 2018

Thanks for writing this up @petermattis.

Re the per-node vs. aggregate question, it's something we've talked about, and was briefly mentioned on #18452.

A lot of your other thoughts are in line with #20500, or would be natural extensions to that view.

@dianasaur323
Copy link
Contributor

we have the majority of these written as user stories either under the admin UI or with query analysis, so we'll hopefully get these covered. Once we figure out an approach, it would be good to run it by you to get feedback.

@couchand couchand added meta-issue Contains a list of several other issues. A-webui-general Issues on the DB Console that span multiple areas or don't have another clear category. labels Apr 24, 2018
@petermattis
Copy link
Collaborator Author

I've wanted to be able to get a view that shows all the node/store lines separately on multiple occasions before. Clicking through each per-node view does the job, but it's a lot more work and a lot tougher to compare between nodes.

This came up again today. My short-term solution was to use a Custom Chart (via the /debug page).

screen shot 2018-06-09 at 10 04 59 am

I'm going to reiterate my desire for this functionality. Adding a toggle button on each chart to switch between aggregated and per-node would be incredibly useful in many of my debugging sessions. And this seems relatively trivial (aside from the design aspect) given that the functionality already exists on the Custom Chart page.

Cc @piyush-singh

@tbg
Copy link
Member

tbg commented Jun 12, 2018

I've wanted this on multiple occasions as well, especially now that we see folks run 15+ node clusters it's really tedious to scope out the outliers manually.

@piyush-singh
Copy link

We'll be tackling this in an upcoming milestone for this release. I'll be sure to reach out when we have designs for how we want to tackle this to get feedback from you both.

@vilterp
Copy link
Contributor

vilterp commented Aug 30, 2018

Update:

@github-actions
Copy link

github-actions bot commented Jun 7, 2021

We have marked this issue as stale because it has been inactive for
18 months. If this issue is still relevant, removing the stale label
or adding a comment will keep it active. Otherwise, we'll close it in
5 days to keep the issue queue tidy. Thank you for your contribution
to CockroachDB!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-webui-general Issues on the DB Console that span multiple areas or don't have another clear category. C-investigation Further steps needed to qualify. C-label will change. meta-issue Contains a list of several other issues. no-issue-activity X-stale
Projects
None yet
Development

No branches or pull requests

7 participants