Skip to content

mgr: add heap admin socket command#69939

Open
tchaikov wants to merge 1 commit into
ceph:mainfrom
tchaikov:wip-mgr-heap-asok
Open

mgr: add heap admin socket command#69939
tchaikov wants to merge 1 commit into
ceph:mainfrom
tchaikov:wip-mgr-heap-asok

Conversation

@tchaikov

@tchaikov tchaikov commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

the mon, osd and mds register a "heap" asok command that forwards to ceph_heap_profiler_handle_command, but the mgr never did, so ceph daemon mgr.<id> heap stats returns "no valid command found". that leaves no way to tcmalloc-profile a leaking mgr through its admin socket, which is what chasing mgr memory growth needs.

register the same command on MgrStandby's admin socket. its hook lives for the whole process, so it works on both the standby and the active mgr. heap output goes to the bufferlist, as on the other daemons, while status keeps using the formatter.

Contribution Guidelines

  • To sign and title your commits, please refer to Submitting Patches to Ceph.

  • If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.

  • When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an x between the brackets: [x]. Spaces and capitalization matter when checking off items this way.

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)
Show available Jenkins commands

You must only issue one Jenkins command per-comment. Jenkins does not understand
comments with more than one command.

the mon, osd and mds register a "heap" asok command that forwards to
ceph_heap_profiler_handle_command, but the mgr never did, so
`ceph daemon mgr.<id> heap stats` returns "no valid command found".
that leaves no way to tcmalloc-profile a leaking mgr through its admin
socket, which is what chasing mgr memory growth needs.

register the same command on MgrStandby's admin socket. its hook lives
for the whole process, so it works on both the standby and the active
mgr. heap output goes to the bufferlist, as on the other daemons, while
status keeps using the formatter.

Signed-off-by: Kefu Chai <[email protected]>
@tchaikov tchaikov requested a review from a team as a code owner July 4, 2026 12:43

@mheler mheler left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, this would be useful for future mgr troubleshooting

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants