LaraPlugins Perf Audit: 12 Fixes That Saved my server

This title could be clearer and more informative.Try out Clickbait Shieldfor free (5 uses left this month).

A real-world performance audit of LaraPlugins.io, a Laravel app indexing 76,000+ packages on an 8 GB VPS running at 90%+ memory. The author walks through 12 concrete fixes including splitting a monolithic Horizon supervisor into dedicated queues, capping worker memory with maxJobs limits, collapsing 50,000 individual Cloudflare cache purge jobs into a single self-rescheduling batched job using Redis SADD, adding missing MySQL indexes, excluding a large JSON column from default queries via a global scope, tuning cache TTLs, and configuring GitHub API rate-limit backoff. The result: memory dropped to a stable 65–80%, New Relic alerts went quiet, and average response times stayed under 100ms.

8m read timeFrom danielpetrica.com
Post cover image
Table of contents
The Starting PointFix 1: Split the Maintenance MonolithFix 2: Memory Caps EverywhereFix 3: The 50,000-Job ProblemFix 4: The Column Nobody ReadsFix 5: Indexes That Should Have Been ThereFix 6: Cache LongerFix 7: Queue MCP analytics Off the Critical PathFix 8: Health Checks That Checked NothingFix 9: MySQL TuningFix 10: Horizon Retention TrimmingFix 11: Rate Limit RecoveryFix 12: Nightwatch SilencingThe ResultsWhat I Would Do Differently
30.4K Impressions