LogoLogo
5.0.X
5.0.X
  • About Trilio for Kubernetes
    • Welcome to Trilio For Kubernetes
    • Version 5.0.X Release Highlights
    • Compatibility Matrix
    • Marketplace Support
    • Features
    • Use Cases
  • Getting Started
    • Getting Started with Trilio on Red Hat OpenShift (OCP)
    • Getting Started with Trilio for Upstream Kubernetes (K8S)
    • Getting Started with Trilio for AWS Elastic Kubernetes Service (EKS)
    • Getting Started with Trilio on Google Kubernetes Engine (GKE)
    • Getting Started with Trilio on VMware Tanzu Kubernetes Grid (TKG)
    • More Trilio Supported Kubernetes Distributions
      • General Installation Prerequisites
      • Rancher Deployments
      • Azure Cloud AKS
      • Digital Ocean Cloud
      • Mirantis Kubernetes Engine
      • IBM Cloud
    • Licensing
    • Using Trilio
      • Overview
      • Post-Install Configuration
      • Management Console
        • About the UI
        • Navigating the UI
          • UI Login
          • Cluster Management (Home)
          • Backup & Recovery
            • Namespaces
              • Namespaces - Actions
              • Namespaces - Bulk Actions
            • Applications
              • Applications - Actions
              • Applications - Bulk Actions
            • Virtual Machines
              • Virtual Machine -Actions
              • Virtual Machine - Bulk Actions
            • Backup Plans
              • Create Backup Plans
              • Backup Plans - Actions
            • Targets
              • Create New Target
              • Targets - Actions
            • Hooks
              • Create Hook
              • Hooks - Actions
            • Policies
              • Create Policies
              • Policies - Actions
          • Monitoring
          • Guided Tours
        • UI How-to Guides
          • Multi-Cluster Management
          • Creating Backups
            • Pause Schedule Backups and Snapshots
            • Cancel InProgress Backups
            • Cleanup Failed Backups
          • Restoring Backups & Snapshots
            • Cross-Cluster Restores
            • Namespace & application scoped
            • Cluster scoped
          • Disaster Recovery Plan
          • Continuous Restore
      • Command-Line Interface
        • YAML Examples
        • Trilio Helm Operator Values
    • Upgrade
    • Air-Gapped Installations
    • Uninstall
  • Reference Guides
    • T4K Pod/Job Capabilities
      • Resource Quotas
    • Trilio Operator API Specifications
    • Custom Resource Definition - Application
  • Advanced Configuration
    • AWS S3 Target Permissions
    • Management Console
      • KubeConfig Authenticaton
      • Authentication Methods Via Dex
      • UI Authentication
      • RBAC Authentication
      • Configuring the UI
    • Resource Request Requirements
      • Fine Tuning Resource Requests and Limits
    • Observability
      • Observability of Trilio with Prometheus and Grafana
      • Exported Prometheus Metrics
      • Observability of Trilio with Openshift Monitoring
      • T4K Integration with Observability Stack
    • Modifying Default T4K Configuration
  • T4K Concepts
    • Supported Application Types
    • Support for Helm Releases
    • Support for OpenShift Operators
    • T4K Components
    • Backup and Restore Details
      • Immutable Backups
      • Application Centric Backups
    • Retention Process
      • Retention Use Case
    • Continuous Restore
      • Architecture and Concepts
  • Performance
    • S3 as Backup Target
      • T4K S3 Fuse Plugin performance
    • Measuring Backup Performance
  • Ecosystem
    • T4K Integration with Slack using BotKube
    • Monitoring T4K Logs using ELK Stack
    • Rancher Navigation Links for Trilio Management Console
    • Optimize T4K Backups with StormForge
    • T4K GitHub Runner
    • AWS RDS snapshots using T4K hooks
    • Deploying Trilio For Kubernetes with Openshift ACM Policies
  • Krew Plugins
    • T4K QuickStart Plugin
    • Trilio for Kubernetes Preflight Checks Plugin
    • T4K Log Collector Plugin
    • T4K Cleanup Plugin
  • Support
    • Troubleshooting Guide
    • Known Issues and Workarounds
    • Contacting Support
  • Appendix
    • Ignored Resources
    • OpenSource Software Disclosure
    • CSI Drivers
      • Installing VolumeSnapshot CRDs
      • Install AWS EBS CSI Driver
    • T4K Product Quickview
    • OpenShift OperatorHub Custom CatalogSource
      • Custom CatalogSource in a restricted environment
    • Configure OVH Object Storage as a Target
    • Connect T4K UI hosted with HTTPS to another cluster hosted with HTTP or vice versa
    • Fetch DigitalOcean Kubernetes Cluster kubeconfig for T4K UI Authentication
    • Force Update T4K Operator in Rancher Marketplace
    • Backup and Restore Virtual Machines running on OpenShift
    • T4K For Volumes with Generic Storage
    • T4K Best Practices
Powered by GitBook
On this page
  • Resource Based Consumption
  • Resource Consumption During Backups
  • Conclusion

Was this helpful?

  1. Advanced Configuration
  2. Resource Request Requirements

Fine Tuning Resource Requests and Limits

This page provides a guideline on how to calculate the resource needs under various circumstances

PreviousResource Request RequirementsNextObservability

Was this helpful?

In order to provide hardware recommendations to users, a series of tests were performed on T4K to measure the memory usage of the control plane, analyzer, web-backend and exporter resources. The tests were performed mainly based on:

  • Number of Kubernetes resources

  • Number of backups

Resource Based Consumption

In order to analyze the impact of resources on T4K, a T4K was set up with 1000 active namespace level backups, 50 backup plans (not running in schedule or creating backups), and 10k resources which contained 1 deployment, 10k services, 1500 config maps, and 750 secrets initially. In each iteration of tests, the backups were kept at 1000, and 10k resources were added until the cluster had 50k resources and 1000 backups.

Below table and graphs provide memory insights of control-plane, analyzer, web-backend and exporter:

Metrics

Load
Control Plane
Analyzer
Web Backend
Exporter

Resources/Backups

Memory (idle)

Memory (spike)

Memory (idle)

Memory (spike)

Memory (idle)

Memory (spike)

Memory (idle)

Memory (spike)

10k resources (1000 backups)

263

263

107

107

272

443

526

723

20k resources (1000 backups)

320

320

102

102

344

575

480

718

30k resources (1000 backups)

342

480

104

107

398

1130

486

650

40k resources (1000 backups)

391

553

111

159

443

1250

460

716

1650k resources (1000 backups)

462

650

140

179

515

1640

530

670

50k resources (1000 backups) - after restart

449

671

142

142

483

1370

-

-

Chart

Addition of 10k resources consumes memory usage upto 150 MB, 52 MB and 555 MB in control-plane, analyzer and web-backend respectively while in case of exporter, addition of resources doesn't affect much in the memory consumption.

Resource Consumption During Backups

In order to analyze the impact of backups on T4K, initially, a T4K was setup with 10k resources which contained 1 deployment, 10k services, 1500 config maps and 750 secrets, ~50 active backups and 50 backup plans creating backups at the same time. In each iteration of tests, the resources were kept at 10k and 1000 backups were added until the cluster had 6k backups and 10k resources.

Below table and graphs provide memory insights of control-plane, analyzer, web-backend and exporter:

Metrics

Load
Control Plane
Analyzer
Web Backend
Exporter

Resources/Backups

Memory (idle)

Memory (spike)

Memory (idle)

Memory (spike)

Memory (idle)

Memory (spike)

Memory (idle)

Memory (spike)

10k resources

(0-50 backups)

330

387

44

51

380

620

87

93

10k resources

(1000 backups)

476

626

164

191

457

860

420

650

10k resources

(2000 backups)

630

780

210

255

757

1190

1150

1410

10k resources

(3300 backups)

750

960

310

400

912

1490

1500

1800

10k resources

(6000 backups)

1060

1320

796

1002

1030

1700

-

-

10k resources

(6000 backups) - after restart

552

-

382

-

558

1300

-

-

Chart

Note: No spike was seen after the restart in above graph as all scheduled based backups were paused at that time

Note: No spike was seen after the restart in above graph as all scheduled based backups were paused at that time

Addition of 1k backups consumes memory usage upto 239 MB, 200 MB, 330 MB and 750 MB in control-plane, analyzer, web-backend and exporter respectively.

Conclusion

control-plane, analyzer and exporter components consume more memory with increasing backups than increasing resources. The number of resources has small amount of effect on control-plane, analyzer and exporter components therefore, the number of backups factor should be taken into the account more while providing the memory limits for these containers. The control-plane spikes seem to be related to scheduled backup plans creating 50 backups every hour. The number of backups that are being created at the same time also contributes in memory spike seen in control-plane. The same spike isn't seen much in the resource based tests as the backup plans were not creating backups every hour.

web-backend on the other hand consume memory with both increasing backups and resources as it needs to cache every resources in the cluster.

Considering the metrics from the tests above, below recommendations can be followed to configure control-plane, analyzer, web-backend and exporter's memory limits:

Component
Recommendation

control-plane

1 GB for 10k resources, 1k backups

analyzer

512 MB for 10k resources, 1k backups

web-backend

1 GB for 10k resources, 1k backups

exporter

1 GB for 1k backups

Resource Usage of Control Plane
Resource Usage of Analyzer
Resource Usage of Web Backend
Resource Usage of Exporter
Control Plane Resource Consumption with Backups
Analyzer Resource Consumption with Backups
Web Backend Resource Consumption with Backups
Exporter Resource Consumption with Backups