← Back
Trending
OpenResty XRay Aug 24, 2022
OpenResty XRay Aug 24, 2022
One String Value Crashed Asia's Biggest Streaming Site — We Found It with OpenResty XRay

- The Platform Behind Hundreds of Millions of Streams
- When Rebooting Doesn’t Help
- Finding the Root Cause Without Touching a Single Line of Code
- One Type Mismatch, Entire System Down
OpenResty XRay Mar 24, 2026
OpenResty XRay Mar 24, 2026
Binary Vulnerability Scanning: Catch Backported Patches, Cut False Positives

- Why Version-Matching Vulnerability Scanning Fails: Three Compounding Costs
- How OpenResty XRay’s Binary Vulnerability Scanning Works: The Evidence-First Model
- Case Study: Binary Vulnerability Scanning on Rocky Linux with Dual OpenSSL Versions
- From Alert Fatigue to Precision: A Sustainable Vulnerability Scanning Practice
OpenResty XRay Feb 10, 2026
OpenResty XRay Feb 10, 2026
Introduction to OpenResty XRay

- Core Philosophy: A Tracing Engine Built for the Unknown
- Turning Noise into Signal: How XRay Demystifies Production Issues
- Empowering Engineering Teams in Cloud-Native Reality
- Built on a Robust, Open Technological Foundatione
- Real-World Success Stories
OpenResty XRay Dec 23, 2025
OpenResty XRay Dec 23, 2025
Nginx Reverse Proxy QPS Dropped 15x: A Missing upstream keepalive and an -O0 Debug Build

- A 15x Slower Nginx Reverse Proxy — and No Errors in the Logs
- Flame Graphs Expose a Connection Storm: The Missing upstream keepalive
- The Remaining 10% Gap: Baseline Comparison Points to the Compiler
- How an -O0 Debug Build Cost Us 10% of Performance
OpenResty XRay Oct 10, 2025
OpenResty XRay Oct 10, 2025
Non-Invasive Java Profiler: Capture Method Arguments in Production Without a Java Agent

- Why Non-Invasive Java Profiling Matters in Production
- Hands-on Demo: Capturing Java Method Arguments in Production
- How OpenResty XRay Differs from Common Java Profilers
- Frequently Asked Questions
OpenResty XRay Feb 16, 2023
OpenResty XRay Feb 16, 2023
The Wonderland of Dynamic Tracing (Part 1 of 3)

- Dynamic Tracing
- What It Is
- Too Good to be True?
- How it Works
- Still Having Doubts?
- The Advantages of Dynamic Tracing
- DTrace
- SystemTap
- DTrace and SystemTap
- Applications of SystemTap in Production
OpenResty XRay Aug 4, 2020
OpenResty XRay Aug 4, 2020
How OpenResty and Nginx Shared Memory Zones Consume RAM

- Slabs and pages
- What is allocated is not what is paid for
- Fake Memory Leaks
- HUP reload
OpenResty XRay Jan 21, 2020
OpenResty XRay Jan 21, 2020
Nginx Memory Usage Explained: Where the RAM Actually Goes

- How to Check Nginx Memory Usage
- On The System Level
- On The Application Level
- For Traditional Nginx Servers
- FAQ: How Much Memory Does Nginx Need?
Latest Articles
OpenResty XRay Aug 18, 2026
OpenResty XRay Aug 18, 2026
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
OpenResty XRay Aug 14, 2026
OpenResty XRay Aug 14, 2026
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
OpenResety Edge Jul 20, 2026
OpenResety Edge Jul 20, 2026
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
OpenResty XRay Jul 15, 2026
OpenResty XRay Jul 15, 2026
OpenResty XRay Version 26.7.15. Now Available

- Key Highlights
- Other Important Updates
OpenResty XRay Jul 14, 2026
OpenResty XRay Jul 14, 2026
OpenResty XRay AI Assistant: Making Every Piece of Analysis Data Speak

- How Is It Different from Pasting a Report into ChatGPT?
- Three Typical Scenarios
- FAQ: Can AI Really Read a Flame Graph? How Reliable Is It?
Archives
2026 Aug
2026 Jul
- CDN for Live Streaming: Surviving Peak Events Without Peak-Event Bills July 20, 2026
- OpenResty XRay Version 26.7.15. Now Available July 15, 2026
- OpenResty XRay AI Assistant: Making Every Piece of Analysis Data Speak July 14, 2026
- OpenResty Private Libraries: High-Performance Lua & Nginx Modules July 8, 2026
- Building a Self-Hosted Live Streaming CDN for HLS with OpenResty Edge July 8, 2026
- OpenResty Tutorial: 7-Step Hands-On Guide from Hello World to Production July 3, 2026
2026 Jun
2026 May
- OpenResty 1.29.2.5 Released May 25, 2026
- OpenResty 1.29.2.4 released May 20, 2026
- Do You Need a Service Mesh? When a Centralized Gateway Is Enough May 18, 2026
- OpenResty XRay Version 26.5.11. Now Available May 12, 2026
- OpenResty Edge Version 26.6.8 Now Available May 8, 2026
- XDP DDoS Mitigation in Production: Million-PPS Kernel-Native Defense, Built into OpenResty Edge May 7, 2026
- OpenResty Edge Data Protection: From Scheduled Backups to Automatic Failover May 6, 2026
2026 Apr
- Automating Kubernetes Gateway Node Lifecycle with OpenResty Edge April 23, 2026
- Managing OpenResty Edge Configuration with YAML and Git: A Practical Guide to `edge2yaml` April 22, 2026
- lua-cjson Too Slow? jit.cjson Speeds Up JSON Encoding in OpenResty 18x April 17, 2026
- Minify HTML, CSS & JS Inside Nginx: OpenResty's 120 MB/s Streaming Minifiers April 7, 2026
2026 Mar
- OpenResty 1.29.2.3 Released March 26, 2026
- Binary Vulnerability Scanning: Catch Backported Patches, Cut False Positives March 24, 2026
- P99 Latency in a D Service Cut 73%: Conservative GC Meets an O(n) Query Under Load March 17, 2026
- OpenResty XRay Version 26.2.1. Now Available March 13, 2026
- End-to-End Client Real IP Passthrough in OpenResty Edge March 5, 2026
- OpenResty 1.29.2.1 Released March 3, 2026
- How OpenResty XRay Enables Full-Stack Dynamic Tracing in Production March 3, 2026
2026 Feb
2026 Jan
- GSLB Explained: How Global Server Load Balancing Works — and Where DNS-Only Scheduling Fails January 27, 2026
- lua-resty-kafka Blocking Your Nginx Workers? Meet lua-resty-kafka-fast January 19, 2026
- OpenResty Edge Version 25.12.5-1 Now Available January 16, 2026
- Hunting Down a Silent Memory Leak in OpenResty Without a Reboot January 13, 2026
2025 Dec
- Nginx Reverse Proxy QPS Dropped 15x: A Missing upstream keepalive and an -O0 Debug Build December 23, 2025
- TLS Session Resumption in Nginx Clusters: Zero-Downtime Key Rotation December 19, 2025
- WAF Benchmark: OpenResty Edge 3.7–10x Faster than ModSecurity (208 Rules) December 15, 2025
- Fix LuaJIT RSS Memory Leak in OpenResty: Stop OOM Kills Without Restarts December 4, 2025
- Building "Less is More" Event-Driven Operations with OpenResty Edge Webhook December 3, 2025
2025 Nov
- How We Pinpointed a 244ms Latency Spike in a 500k QPS OpenResty Gateway November 18, 2025
- Open Source OpenResty vs. OpenResty Edge: Key Differences November 17, 2025
- Private CDN Solution: Enterprise Edge Architecture | OpenResty Edge November 11, 2025
- When a "Black Box" Plugin Consumes 45% CPU: How We Pinpointed Lua Line 93 Without Source Code November 10, 2025
- How to Diagnose Java Memory Leaks in Production — Without Heap Dumps or Restarts November 10, 2025
2025 Oct
- OpenResty XRay Version 25.10.11 Now Available October 31, 2025
- OpenResty Edge Version 25.9.17 Now Available October 31, 2025
- Gzip CPU Usage: Why Compression Level 6 Consumed 54% of Server CPU October 27, 2025
- Zstd Compression in OpenResty Edge: Faster, Lighter Than Gzip and Brotli October 20, 2025
- SSL Certificate Automation with the ACME Protocol in OpenResty Edge October 15, 2025
- Nginx C++ Module Memory Leak: Root Cause in Production, No Restart October 11, 2025
- Non-Invasive Java Profiler: Capture Method Arguments in Production Without a Java Agent October 10, 2025
2025 Sep
- How OpenResty XRay Pinpoints the Toughest Problems with Minimal Data September 24, 2025
- Perl Memory Leak: From Several GB to 60MB with One Flame Graph September 12, 2025
- How OpenResty XRay's Node.js Function Probes Enable a New Monitoring Paradigm September 11, 2025
- Enabling Mirror Request Functionality with OpenResty Edge September 2, 2025
- The Nginx Worker That Refused to Serve More Than 300 RPS: Traced to a 75ms Event-Loop Block September 1, 2025
2025 Jul
- Double Bottleneck Concurrency? OpenResty XRay Multi-dimensional Analysis Solves Performance Challenges July 30, 2025
- Non-Invasive Node.js CPU Profiling with Flame Graphs July 22, 2025
- How to Set Up a Self-Hosted CDN: Step-by-Step Guide with OpenResty Edge July 21, 2025
- Nginx Core Dump Analysis: Catch a Worker Process Crash at the First Scene July 16, 2025
- UDB + OpenResty XRay: Unlocking the Mystery of OpenResty Application Performance July 14, 2025
- How UDB and OpenResty XRay Let You See Through the Entire Perl Code Execution Process July 14, 2025
- Unveiling Python Code Execution with UDB July 11, 2025
- How to Debug File I/O in Java with Time-Travel Call Stacks July 11, 2025
- Tracing an LRU Cache Memory Leak in OpenResty — Down to the Cached SSL Certificates July 8, 2025
- Uneven Nginx Worker CPU Usage: Tracing a Missing reuseport Flag and a cjson Hotspot July 2, 2025
- The Swiss Army Knife for Dynamic Tracing, How Ylang Tames Complexity July 1, 2025
2025 Jun
2025 May
- OpenResty 1.27.1.2 Released May 30, 2025
- Deep Dive into Dynamic Tracing Technology: How OpenResty XRay Revolutionizes Problem Diagnosis May 30, 2025
- Why is Dynamic Tracing Difficult to Implement? How Does OpenResty XRay Break Through? May 26, 2025
- Traditional Methods vs. Dynamic Tracing: A Revolution in Efficiency and Control May 26, 2025
- The Next Stop for Observability: How OpenResty XRay Redefines Problem Troubleshooting May 26, 2025
- From Black Box to White Box: OpenResty XRay Makes System Issues Nowhere to Hide May 7, 2025
2025 Apr
- OpenResty XRay Empowers LLVM clang Performance Optimization Practices April 18, 2025
- Self-Optimization: The Performance Evolution of OpenResty XRay April 17, 2025
- OpenResty XRay Helps Boost Script Performance by 44 Times April 7, 2025
- Cross-Media Data Structure Drift: OpenResty XRay Enables 20x Performance Improvement April 3, 2025
- From OOM to O(1): The Implementation Path of Streaming JSON Parser April 2, 2025
- From Days to Hours: How OpenResty XRay Accelerated the Linux shred Tool by Dozens of Times April 1, 2025
2024 Oct
2024 Sep
2024 Aug
2024 Jun
2024 May
- Why Your Rust Process Has High Disk I/O (and How to Find the Cause) May 24, 2024
- Introduction to OpenResty XRay Mobile Apps May 12, 2024
- PHP Memory Profiler: Locate the Largest Memory Objects in a Live PHP Process May 11, 2024
- OpenResty Edge Gateway Health Checks: Auto-Remove Failed Nodes from DNS May 8, 2024
2024 Apr
2024 Mar
- How to Trace Perl Exceptions in Production Without Restarting March 30, 2024
- Nginx 'No Debugging Symbols Found'? Rebuild Them Automatically with OpenResty XRay March 27, 2024
- Automatic Core Dump Analysis (using OpenResty XRay) March 13, 2024
- Install OpenResty XRay’s Agents on Amazon Linux via Package Bundles March 11, 2024
- Debugging High Disk I/O in Go Services on Linux March 10, 2024
2024 Feb
- Control Access to DNS Applications in OpenResty Edge's Admin Console February 28, 2024
- Pinpointing the hottest PHP code paths with high CPU usage (using OpenResty XRay) February 27, 2024
- Envoy CPU Profiling: Find Hot C++ Paths with Flame Graphs February 27, 2024
- How to Trace Go Panics in Production Without Restarting February 19, 2024
- Call Lua modules by Edgelang in OpenResty Edge February 6, 2024
- Laravel High CPU Usage: Why Even Hello World Burns Half Its CPU February 1, 2024
2024 Jan
- Perl Process Stuck at 13% CPU: Off-CPU Flame Graphs Pinpoint a Blocking HTTP Call January 26, 2024
- How to Trace Rust Panics in Production Without Restarting January 19, 2024
- Pinpointing CPU-Hottest Go Code Paths Inside Prometheus (using OpenResty XRay) January 16, 2024
- OpenResty 1.25.3.1 Released January 12, 2024
- Global Search in OpenResty Edge January 7, 2024
2023 Dec
- How to Diagnose 504 Gateway Timeout Errors in OpenResty & Nginx December 29, 2023
- Performance Overhead of OpenResty XRay when Tracing Perl Apps December 25, 2023
- How CPU Time is Spent inside Go’s CockroachDB (using OpenResty XRay) December 25, 2023
- How to Use Gateway Staging Servers in OpenResty Edge December 21, 2023
- Locate the Largest Memory Objects in a Live Perl Process December 15, 2023
- Measuring the Performance Overhead of OpenResty XRay When Profiling Go Applications December 7, 2023
- Install OpenResty XRay’s Agents on Ubuntu via Deb Packages December 5, 2023
- Configuring Webhooks in OpenResty Edge December 4, 2023
- Performance Impact of OpenResty XRay when Tracing PHP Apps December 1, 2023
2023 Nov
- Tested in Production: The Performance Impact of OpenResty XRay When Tracing Rust Applications November 27, 2023
- Performance Impact of OpenResty XRay when Tracing Python Apps November 27, 2023
- Dynamic-Tracing Custom Go Programs with Custom Ylang Analyzers (using OpenResty XRay) November 24, 2023
- Configure Custom Error Pages in OpenResty Edge November 23, 2023
- Configure DNS Records in OpenResty Edge November 21, 2023
- Adding Custom Response Headers in OpenResty Edge November 15, 2023
- How to Configure Global Server Load Balancing (GSLB) in OpenResty Edge November 9, 2023
2023 Oct
2023 Sep
- Python Memory Profiler: Find the Largest Objects Eating RAM Without Code Changes September 28, 2023
- How CPU time is spent inside Rust’s Sled library (using OpenResty XRay) September 28, 2023
- How CPU time is spent inside Go's etcd server (using OpenResty XRay) September 27, 2023
- llama.cpp CPU Usage: 400% CPU Traced to ggml Hot Functions September 21, 2023
- Go Off-CPU Analysis: Tracing a Running Process Stuck at 2% CPU to a Blocking Shell Call September 1, 2023
2023 Aug
- Golang High CPU Usage: Regex Compilation Burned 36.8% of CPU Time August 23, 2023
- Python Process Stuck at 8% CPU: Off-CPU Analysis Traces a Blocking subprocess.run Call August 8, 2023
- Two bugs in Linux kernels' tracing subsystem (found by OpenResty XRay) August 6, 2023
- Perl High CPU Usage: 100% CPU Traced to a Regex Hotspot with Flame Graphs August 4, 2023
2023 Jul
- Pinpointing hottest Lua code paths in online OpenResty/Nginx servers (using OpenResty XRay) July 28, 2023
- OpenResty 1.21.4.2 Released July 28, 2023
- Memory and CPU usage statistics among Kong plugins online (using OpenResty XRay) July 15, 2023
- How we solved a CPU bottleneck caused by Lua exceptions in a custom Kong plugin (using OpenResty XRay) July 15, 2023
- TCP Packet Capture on Slow Connections: Tracing a 200ms Nginx Request Body Delay July 5, 2023
2023 Jun
- EdgeLang: A Powerful and Efficient Language for Gateway Logic June 30, 2023
- Find Leaked Lua Tables: the registry / _LOADED (package.loaded) Reference Path in OpenResty XRay June 27, 2023
- Real-Time Request Counting against Nginx Processes via YSQL June 23, 2023
- Using request IDs to troubleshoot problematic requests in OpenResty Edge gateways June 7, 2023
- How to Enable hCaptcha in OpenResty Edge (Page Rules & WAF) June 6, 2023
- OpenResty Edge Static Files: Serve Assets from the Gateway with No Back-to-Source June 5, 2023
- Configuring SNI proxies in OpenResty Edge June 5, 2023
- OpenResty Edge Built-in Captcha: Block Bots at the Gateway with No Backend Changes June 3, 2023
2023 May
- Configuring gateway access log files in OpenResty Edge May 30, 2023
- OpenResty Edge TCP Load Balancing: Proxy TCP Services Without Editing Nginx Config May 29, 2023
- Configuring error log files in OpenResty Edge May 28, 2023
- How to Enable Sticky Cookies in OpenResty Edge (Session Affinity) May 25, 2023
- How to use standard dynamic metrics in OpenResty Edge May 22, 2023
- Managing traffic to Kubernetes (K8s) upstreams in OpenResty Edge May 8, 2023
- How to deploy the on-premises version of OpenResty XRay on Microsoft's Azure cloud May 5, 2023
2023 Apr
- OpenResty Edge WAF: Enable, Test, and Block Attacks April 25, 2023
- Configure distributed gRPC proxy in OpenResty Edge April 25, 2023
- The EdgeLang DSL in OpenResty Edge April 19, 2023
- OpenResty 1.21.4.2 RC1 is out April 17, 2023
- How to pass the real client IP addresses to backend servers via special request headers April 12, 2023
2023 Feb
- Lua io.popen Blocks Nginx's Event Loop: A 150x Throughput Fix February 18, 2023
- The Wonderland of Dynamic Tracing (Part 3 of 3) February 16, 2023
- The Wonderland of Dynamic Tracing (Part 2 of 3) February 16, 2023
- The Wonderland of Dynamic Tracing (Part 1 of 3) February 16, 2023
- Nginx Memory Doubles After Reload? Here's Why (and the Fix) February 14, 2023
- New FAQ Doc for OpenResty XRay February 7, 2023
2022 Jun
2021 Dec
2021 Nov
2021 Sep
- Auto-Generate Demo Videos for Google Search from Screenplay Docs (via OpenResty Showman) September 26, 2021
- Set Different Host Headers for Upstream Requests in OpenResty Edge September 16, 2021
- Official OpenResty Debian 11 package repo September 9, 2021
- Redirect to different URIs Based on Clients' Language Settings (OpenResty Edge) September 6, 2021
2021 Jun
2021 Apr
2021 Mar
2021 Feb
2020 Dec
- LuaJIT Bytecode in OpenResty - How to Precompile Lua Modules December 9, 2020
- How to Benchmark Lua Code in OpenResty: ngx.now(), JIT Warmup, and GC December 7, 2020
- How to Look Up OpenResty Documentation in Your Terminal with restydoc December 2, 2020
- How to Share Data Between Requests in OpenResty December 1, 2020
2020 Nov
- Install OpenResty on CentOS 8 via dnf November 30, 2020
- OpenResty resty CLI Tutorial: From Hello World to JIT Profiling November 29, 2020
- Memory Reduced by 60%, OpenResty XRay Precisely Locates Problem Code, Quickly Completes Fixes and Deployment November 19, 2020
- How to Write Lua Modules in OpenResty: A Step-by-Step Example November 15, 2020
- Hello World HTTP Example in OpenResty November 14, 2020
- OpenResty 1.19.3.1 released November 5, 2020
