frappe-ops-performance

Tune MariaDB, Redis, Gunicorn, and RQ workers to resolve Frappe/ERPNext performance bottlenecks.

163|53|Updated Jan 14, 2026
One-click install
npx skills add https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-ops-performance-impertio-studio
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: frappe-ops-performance
Source: https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/ops/frappe-ops-performance
Command: npx skills add https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-ops-performance-impertio-studio

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

It solves production performance issues in Frappe/ERPNext where pages load slowly, database queries underperform, Redis cache grows inefficiently, and worker saturation or misconfiguration causes timeouts and delayed background jobs.

Core Features & Use Cases

  • End-to-end performance tuning across the full stack: coordinates MariaDB (InnoDB/slow queries), Redis cache/queues sizing, Gunicorn worker counts/timeouts, and RQ background workers together instead of optimizing only one layer.
  • Practical bottleneck diagnosis: maps symptoms (slow pages, delayed jobs, slow queries, OOM/swap, high CPU) to specific checks like slow query logs, Redis memory/evictions, and worker backlog.
  • Production-ready configuration patterns: provides concrete MariaDB tuning knobs, Redis maxmemory/eviction guidance, and safe scaling formulas/monitoring commands to prevent new bottlenecks.
  • Use case example: when an ERPNext instance becomes sluggish after traffic increases, use the decision tree to identify whether the slowdown is caused by missing indexes and slow queries, insufficient Gunicorn/RQ workers, Redis memory pressure, or static asset delivery without a CDN.

Quick Start

Use the skill to diagnose slow page loads by first running bench doctor, then analyzing the MariaDB slow query log, and finally validating Gunicorn worker saturation and Redis cache memory configuration.

Frequently Asked Questions about frappe-ops-performance

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why is my Frappe ERPNext site loading slowly and how do I diagnose the bottleneck?

Slow Frappe page loads often stem from missing indexes, Redis memory pressure, or Gunicorn worker saturation. Diagnose the bottleneck by running bench doctor, analyzing the MariaDB slow query log, and checking worker backlog to isolate the performance issue.

How do I tune MariaDB InnoDB buffer pool size to fix slow ERPNext queries?

To fix slow MariaDB queries during ERPNext performance tuning, size the innodb_buffer_pool_size appropriately and use EXPLAIN on slow-log entries to identify and add missing indexes for inefficient query patterns.

What is the best way to configure Redis maxmemory and eviction policy for Frappe?

Configuring Redis maxmemory and eviction policies prevents cache inefficiency and OOM events in Frappe. Set appropriate memory limits and eviction rules to ensure cache stability without triggering swap or out-of-memory errors.

How do I calculate Gunicorn and RQ worker counts to prevent delayed background jobs?

Prevent delayed RQ background jobs and Gunicorn timeouts by calculating safe worker counts and timeout limits based on your CPU resources. Scaling workers appropriately resolves worker saturation and high CPU usage.

Can I use slow query log analysis to resolve high CPU and swap events in ERPNext?

Yes, high CPU and swap events in ERPNext are frequently caused by inefficient query patterns. Enabling MariaDB slow query logging and profiling those queries with EXPLAIN helps resolve the performance bottlenecks.

Does this Frappe performance tuning approach require a CDN for static assets?

No, but if the decision tree identifies static asset delivery as the bottleneck during traffic increases, offloading static assets to a CDN is recommended to alleviate overall Frappe page load latency.