Featured Articles

Photo by Yichun Zhang

How a Single "0" Took Down Bilibili — Every Server at 100% CPU, and Reboots Didn't Help

How a Single "0" Took Down Bilibili — Every Server at 100% CPU, and Reboots Didn't Help

Binary Vulnerability Scanning: Catch Backported Patches, Cut False Positives

Binary Vulnerability Scanning: Catch Backported Patches, Cut False Positives

Binary Vulnerability Scanning: Catch Backported Patches, Cut False Positives

Introduction to OpenResty XRay

Introduction to OpenResty XRay

Introduction to OpenResty XRay

Nginx Reverse Proxy QPS Dropped 15x: A Missing upstream keepalive and an -O0 Debug Build

Nginx Reverse Proxy QPS Dropped 15x: A Missing upstream keepalive and an -O0 Debug Build

Nginx Reverse Proxy QPS Dropped 15x: A Missing upstream keepalive and an -O0 Debug Build

Non-Invasive Java Profiler: Capture Method Arguments in Production Without a Java Agent

Non-Invasive Java Profiler: Capture Method Arguments in Production Without a Java Agent

Non-Invasive Java Profiler: Capture Method Arguments in Production Without a Java Agent

Photo by Philip Brown

The Wonderland of Dynamic Tracing (Part 1 of 3)

The Wonderland of Dynamic Tracing (Part 1 of 3)

Photo by Jose G. Ortega Castro

How OpenResty and Nginx Shared Memory Zones Consume RAM

How OpenResty and Nginx Shared Memory Zones Consume RAM

Photo by Harrison Broadbent

Nginx Memory Usage Explained: Where the RAM Actually Goes

Nginx Memory Usage Explained: Where the RAM Actually Goes

OpenResty XRay reduce your CPU usage up to  90%
OpenResty XRay reduce your CPU usage up to 90%
Request free trial

Latest Articles

Flame Graphs: How to Read a CPU Flame Graph and Find the Code Burning Your CPU

  • What is a flame graph: definition, axes, and the four rules
  • How to read a flame graph: plateaus, towers, hair, and self vs total
  • Three real production flame graphs: PHP preg_match, Go regexp.MustCompile, Erlang erts_pcre_exec
  • From 100% CPU to the culprit line: a four-step workflow with a per-stack routing table
  • How to get a flame graph for your stack
  • Icicle graphs, flame charts, and other variants
  • Can AI read flame graphs for you?
  • What is a flame graph: definition, axes, and the four rules
  • How to read a flame graph: plateaus, towers, hair, and self vs total
  • Three real production flame graphs: PHP preg_match, Go regexp.MustCompile, Erlang erts_pcre_exec
  • From 100% CPU to the culprit line: a four-step workflow with a per-stack routing table
  • How to get a flame graph for your stack
  • Icicle graphs, flame charts, and other variants
  • Can AI read flame graphs for you?

P99 Latency: Why Averages Lie, and How to Diagnose the Slowest 1%

  • What is P99 latency?
  • P50 vs P95 vs P99: what each percentile tells you
  • Why average latency lies
  • Why is P99 latency high? A root-cause spectrum
  • How to diagnose high P99 latency
  • How to reduce P99 latency: fix what you found
  • Summary
  • Frequently Asked Questions
  • What is P99 latency?
  • P50 vs P95 vs P99: what each percentile tells you
  • Why average latency lies
  • Why is P99 latency high? A root-cause spectrum
  • How to diagnose high P99 latency
  • How to reduce P99 latency: fix what you found
  • Summary
  • Frequently Asked Questions

Memory Leak Detection in Production: From RSS Curve to Source Line

  • The Symptom: A Memory Curve That Only Goes Up
  • Memory Leak or Just High Memory Usage?
  • Four Leak Patterns with Real Root-Cause Chains
  • It Looks Like a Leak, but It Isn’t
  • How to Locate a Leak: Top-Down Layered Attribution
  • Why Traditional Tools Fall Short in Production
  • Frequently Asked Questions
  • The Symptom: A Memory Curve That Only Goes Up
  • Memory Leak or Just High Memory Usage?
  • Four Leak Patterns with Real Root-Cause Chains
  • It Looks Like a Leak, but It Isn’t
  • How to Locate a Leak: Top-Down Layered Attribution
  • Why Traditional Tools Fall Short in Production
  • Frequently Asked Questions

Off-CPU Analysis: Four Root Causes Behind Low CPU Yet High Latency

  • What Is Off-CPU Time?
  • The Symptom: CPU Usage Won’t Climb, Yet Requests Are Queuing
  • Four Categories of Off-CPU Root Causes with Real-World Root-Cause Chains
  • How to Quantify Off-CPU Time
  • On-CPU + Off-CPU = Wall-Clock Time: The Bigger Picture and the Tool Ecosystem
  • FAQ
  • What Is Off-CPU Time?
  • The Symptom: CPU Usage Won’t Climb, Yet Requests Are Queuing
  • Four Categories of Off-CPU Root Causes with Real-World Root-Cause Chains
  • How to Quantify Off-CPU Time
  • On-CPU + Off-CPU = Wall-Clock Time: The Bigger Picture and the Tool Ecosystem
  • FAQ

CDN for Live Streaming: Surviving Peak Events Without Peak-Event Bills

  • Why live streams crash at peak: running day-to-day doesn’t mean surviving the peak
  • How a private CDN turns peak stability from probability into certainty
  • Live streaming CDN cost comparison: surviving the peak isn’t paying for the peak
  • The real cost of a private CDN: not the same as building from scratch
  • Beyond delivery: what a live streaming scenario needs from the same gateway layer
  • FAQ
  • Why live streams crash at peak: running day-to-day doesn’t mean surviving the peak
  • How a private CDN turns peak stability from probability into certainty
  • Live streaming CDN cost comparison: surviving the peak isn’t paying for the peak
  • The real cost of a private CDN: not the same as building from scratch
  • Beyond delivery: what a live streaming scenario needs from the same gateway layer
  • FAQ

Building a Self-Hosted Live Streaming CDN for HLS with OpenResty Edge

  • Why live HLS breaks a naive caching setup
  • Building it on OpenResty Edge: two page rules with opposite TTLs
  • The most critical step: the Use stale proxy cache action
  • A shield tier with gateway partitions: collapsing to one fetch network-wide
  • Verifying the configuration and load testing
  • FAQ
  • Why live HLS breaks a naive caching setup
  • Building it on OpenResty Edge: two page rules with opposite TTLs
  • The most critical step: the Use stale proxy cache action
  • A shield tier with gateway partitions: collapsing to one fetch network-wide
  • Verifying the configuration and load testing
  • FAQ

Install OpenResty - Complete Setup Guide for All Platforms

  • Supported Platforms
  • Quick Start (Ubuntu / Debian)
  • Platform Installation Guides
  • ARM64 / Aarch64
  • Alpine Linux
  • macOS & Building from Source
  • Verify Your Installation
  • FAQ
  • Supported Platforms
  • Quick Start (Ubuntu / Debian)
  • Platform Installation Guides
  • ARM64 / Aarch64
  • Alpine Linux
  • macOS & Building from Source
  • Verify Your Installation
  • FAQ

Do You Need a Service Mesh? When a Centralized Gateway Is Enough

  • Do you need a service mesh? When a centralized gateway is the better fit
  • Four pain points of ungoverned east-west traffic
  • Service Mesh vs. centralized gateway: engineering trade-offs
  • Full lifecycle walkthrough: permissions → canary → rollback
  • Three-stage rollout path, real-world results, and FAQ
  • Do you need a service mesh? When a centralized gateway is the better fit
  • Four pain points of ungoverned east-west traffic
  • Service Mesh vs. centralized gateway: engineering trade-offs
  • Full lifecycle walkthrough: permissions → canary → rollback
  • Three-stage rollout path, real-world results, and FAQ

OpenResty Edge Version 26.6.8 Now Available

  • Core Highlights
  • Enhanced Features & Increased Flexibility
  • Improved Usability & Observability
  • Key Fixes and Stability Enhancements
  • How to Upgrade?
  • Core Highlights
  • Enhanced Features & Increased Flexibility
  • Improved Usability & Observability
  • Key Fixes and Stability Enhancements
  • How to Upgrade?

XDP DDoS Mitigation in Production: Million-PPS Kernel-Native Defense, Built into OpenResty Edge

  • The impossible triangle of DDoS mitigation architectures
  • How OpenResty Edge delivers XDP DDoS mitigation for all three goals
  • Measured performance: 170k–180k PPS on an AWS t3.small, million-PPS in the lab
  • Automated DDoS response as a prerequisite, not a perk
  • Observability: real-time DDoS mitigation metrics
  • FAQ: XDP DDoS mitigation
  • The impossible triangle of DDoS mitigation architectures
  • How OpenResty Edge delivers XDP DDoS mitigation for all three goals
  • Measured performance: 170k–180k PPS on an AWS t3.small, million-PPS in the lab
  • Automated DDoS response as a prerequisite, not a perk
  • Observability: real-time DDoS mitigation metrics
  • FAQ: XDP DDoS mitigation

OpenResty Edge Database Backup and Failover: Why Replication Is Not a Backup

  • First line of defense: scheduled database backups and off-host sync
  • Second line of defense: does streaming replication protect against accidental deletion?
  • Third line of defense: automatic database failover cluster
  • Backup vs. replication vs. failover: which do you need?
  • Frequently asked questions
  • First line of defense: scheduled database backups and off-host sync
  • Second line of defense: does streaming replication protect against accidental deletion?
  • Third line of defense: automatic database failover cluster
  • Backup vs. replication vs. failover: which do you need?
  • Frequently asked questions

Kubernetes Gateway Lifecycle Management: Auto-Approve Nodes & Unify Multi-Cluster Control with OpenResty Edge

  • Why traditional gateway management breaks in Kubernetes
  • How to automate Kubernetes gateway node onboarding and approval
  • Managing multiple Kubernetes clusters from a single control plane
  • Two-tier upstreams: mapping Kubernetes upstream ownership to teams
  • Summary: choosing a gateway for Kubernetes
  • Why traditional gateway management breaks in Kubernetes
  • How to automate Kubernetes gateway node onboarding and approval
  • Managing multiple Kubernetes clusters from a single control plane
  • Two-tier upstreams: mapping Kubernetes upstream ownership to teams
  • Summary: choosing a gateway for Kubernetes
Contact us

OpenResty open-source community workspace

Please join us here and share your thoughts and questions with us, we can't wait to see you there!


limited time offer

Request TRIAL today and receive a diagnostic REPORT
Learn more

Love to hear from you, Get in touch 👋

Message was sent successfully!

Our Team will get back to you within 24 hours.
x