Files
LibreQoS/docs/v2.0/scale-topology.md
T
2026-03-15 23:35:41 -06:00

3.5 KiB

Scale Planning and Topology Design

This guide focuses on designing network.json and integration strategy choices for stable performance at scale.

Core Design Principles

  • Keep hierarchy only as deep as operationally necessary.
  • Avoid concentrating too much traffic under one top-level parent.
  • Prefer predictable naming and stable parent relationships to reduce queue churn.
  • Validate topology changes in a maintenance window before broad rollout.

Strategy Selection by Scale

Use the simplest integration strategy that still meets operational needs:

flowchart TD
    A[Need hierarchy visibility/control?] -->|No| B[flat]
    A -->|Yes| C{Need site-level aggregation?}
    C -->|No| D[ap_only]
    C -->|Yes| E{Need full backhaul/path shaping?}
    E -->|No| F[ap_site]
    E -->|Yes| G[full]
    G --> H{Single-core saturation?}
    H -->|Yes| I[Use promote_to_root]
    H -->|No| J[Keep full strategy]
Strategy Typical Scale Fit Tradeoff
flat Maximum performance, minimal hierarchy Lowest topology visibility/aggregation
ap_only Large AP-driven networks Good performance, moderate visibility
ap_site Medium to large site/AP networks Better aggregation with moderate overhead
full Networks requiring full path/backhaul representation Highest control and highest CPU/memory cost

If full is required and you observe single-core saturation, use promote_to_root to distribute load.

Parent/Child Distribution Guidance

Design goals:

  • Keep top-level parents balanced in traffic and circuit count.
  • Avoid very deep branch chains unless they add real shaping value.
  • Keep sibling naming unique and stable (important for virtual-node promotion and operational clarity).

Warning signs:

  • One core persistently overloaded while others are mostly idle.
  • Frequent major queue rebuilds after small integration updates.
  • WebUI CPU Tree shows skewed distribution not explained by demand.

Virtual Nodes and Logical Grouping

Virtual nodes are useful for logical organization and aggregation views.

  • Use virtual nodes to improve operability and reporting structure.
  • Do not use virtual nodes as a substitute for physical topology clarity.
  • Validate for name collisions after promotion behavior.
  • For logical-to-physical promotion and CPU/binpacking flow, see Advanced Configuration Reference.

Queue/Classifier Guardrails

At high scale, queue/class identifier pressure can become real.

  • Monitor for urgent issues such as TC_U16_OVERFLOW.
  • If encountered, reduce topology complexity and/or increase queue parallelism where appropriate.
  • Reassess strategy depth (full -> ap_site/ap_only) when overflow risk appears.

See Troubleshooting for urgent-code response steps.

Rollout Checklist for Topology Changes

  1. Export current network.json and ShapedDevices.csv backups.
  2. Apply one topology change set at a time.
  3. Run/observe lqos_scheduler and lqosd logs after each change.
  4. Validate WebUI:
    • CPU Tree / CPU Weights distribution
    • Flow Globe/ASN/Tree behavior
    • scheduler status and urgent issues
  5. Keep a rollback copy of prior integration settings and topology files.