Project

General

Profile

Actions

Bug #36453

open

Tasks #36451: mgr/dashboard: Scalability testing

mgr/dashboard: Some REST endpoints grow linearly with OSD count

Added by Ernesto Puerta over 5 years ago. Updated over 1 year ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
General
Target version:
% Done:

75%

Source:
Tags:
Backport:
pacific quincy
Regression:
No
Severity:
1 - critical
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Endpoints providing information on OSD show linear size growth with OSD count.

  • /health grows 1-2 kB/OSD. It embeds all relevant Ceph maps (mgr_map, fs_map, osd_map, mon_map). Landing page is the main consumer of this endpoint, but it only needs osd_map to print "X total OSD (Y up, Z in)". Solution: calculate in a backend controller (/summary?) all the info needed for the Landing page.
  • /osd grows 1-2 kB/OSD.

Those would mean around 1-2 MB payloads every 5 seconds per dashboard instance for a 1000 OSD deployment. The resulting size can be highly varying as the payload is a plain-text JSON with lots of variable-length strings and numbers.

The above might impact on the following:
  • Networking: especially wireless ones.
  • Server-side: caching either Ceph-mgr results or endpoint payloads could improve performance.
    • Solution: cache ceph-mgr responses.
    • Solution: using HTTP cache control (single-user multiple-requests).
    • Solution: cache REST payloads internally (multiple-user).
  • Client-side: user experience may be negatively affected by parsing and processing large chunks of JSON.
    • Solution: lightweight data exchange formats (BSON, MessagePack).
    • Solution: delta JSON (PATCH-like).
    • Solution: more specialized REST Resources (instead of generalistic ones, like /health).
    • Solution: REST API pagination support.
    • Solution: REST API field selector/filtering support.

Subtasks 4 (1 open3 closed)

Bug #36674: mgr/dashboard: Enable compression for backend requestsClosedZack Cerza

Actions
Feature #36675: mgr/dashboard: Provide API endpoint providing minimal health dataClosedZack Cerza

Actions
Feature #37298: mgr/dashboard: Support a more compact data format (MessagePack, BSON)RejectedZack Cerza

Actions
Bug #56511: mgr/dashboard: paginate OSDsNewAashish Sharma

Actions

Related issues 1 (1 open0 closed)

Related to Dashboard - Feature #40907: mgr/dashboard: REST API improvementsNewErnesto Puerta

Actions
Actions

Also available in: Atom PDF