← Back
Openresty-Xray

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

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
  • 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

How OpenResty XRay Enables Full-Stack Dynamic Tracing in Production

  • Where Do Existing Dynamic Tracing Frameworks Fall Short in Production?
  • How Did OpenResty XRay Rethink Dynamic Tracing at the Architecture Level?
  • What Is a Full-Stack Flame Graph and How Do You Use It to Diagnose Performance Bottlenecks?
  • How Is OpenResty XRay Expanding Its Observability Coverage Over Time?
  • Further Reading and Real-World Case Studie
  • Where Do Existing Dynamic Tracing Frameworks Fall Short in Production?
  • How Did OpenResty XRay Rethink Dynamic Tracing at the Architecture Level?
  • What Is a Full-Stack Flame Graph and How Do You Use It to Diagnose Performance Bottlenecks?
  • How Is OpenResty XRay Expanding Its Observability Coverage Over Time?
  • Further Reading and Real-World Case Studie

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
  • 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

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
  • 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

Fix LuaJIT RSS Memory Leak in OpenResty: Stop OOM Kills Without Restarts

  • What Is the LuaJIT Pseudo Memory Leak?
  • Diagnosing the Problem with Real Production Data
  • Why Standard Fixes Don’t Work
  • How LuaJIT-plus Fixes This at the Allocator Level
  • Production Impact After Deployment
  • What Is the LuaJIT Pseudo Memory Leak?
  • Diagnosing the Problem with Real Production Data
  • Why Standard Fixes Don’t Work
  • How LuaJIT-plus Fixes This at the Allocator Level
  • Production Impact After Deployment

How We Pinpointed a 244ms Latency Spike in a 500k QPS OpenResty Gateway

  • Latency Spikes and CPU Waste Hidden Beneath Healthy Averages
  • Troubleshooting OpenResty Latency Without Code Changes or Restarts
  • The Results: Latency Spikes Eliminated, 30% Lower CPU Usage
  • Frequently Asked Questions
  • Latency Spikes and CPU Waste Hidden Beneath Healthy Averages
  • Troubleshooting OpenResty Latency Without Code Changes or Restarts
  • The Results: Latency Spikes Eliminated, 30% Lower CPU Usage
  • Frequently Asked Questions

How to Diagnose Java Memory Leaks in Production — Without Heap Dumps or Restarts

  • Why Full GCs Didn’t Reclaim the Heap: A Production Java Memory Leak
  • How to Diagnose a Java Memory Leak in Production Without a Heap Dump
  • How to Find a Java Memory Leak: A Reusable 3-Step Method
  • Why Use OpenResty XRay to Find Java Memory Leaks on a Live JVM?
  • FAQ
  • Why Full GCs Didn’t Reclaim the Heap: A Production Java Memory Leak
  • How to Diagnose a Java Memory Leak in Production Without a Heap Dump
  • How to Find a Java Memory Leak: A Reusable 3-Step Method
  • Why Use OpenResty XRay to Find Java Memory Leaks on a Live JVM?
  • FAQ

OpenResty XRay Version 25.10.11 Now Available

  • Three Key Highlights
  • Enhanced Diagnostic Accuracy and Stability
  • Usability and Security Enhancements
  • Three Key Highlights
  • Enhanced Diagnostic Accuracy and Stability
  • Usability and Security Enhancements

Gzip CPU Usage: Why Compression Level 6 Consumed 54% of Server CPU

  • How Gzip Compression Consumed 54% of CPU in Production
  • Why Gzip CPU Usage Was So High: A Configuration-Level Diagnosis
  • Quantifying Gzip and Brotli CPU Overhead
  • From Guesswork to Data-Driven Compression Tuning
  • How Gzip Compression Consumed 54% of CPU in Production
  • Why Gzip CPU Usage Was So High: A Configuration-Level Diagnosis
  • Quantifying Gzip and Brotli CPU Overhead
  • From Guesswork to Data-Driven Compression Tuning

Nginx C++ Module Memory Leak: Root Cause in Production, No Restart

  • The Production Challenge: A C++ Module Memory Leak You Can’t Debug With GDB
  • How the Flame Graph Pinpointed the Leaking Function in ngx_dubbo_module
  • From Reactive to Proactive: XRay’s New Approach to Troubleshooting
  • The OpenResty XRay Closed-Loop Approach
  • The Production Challenge: A C++ Module Memory Leak You Can’t Debug With GDB
  • How the Flame Graph Pinpointed the Leaking Function in ngx_dubbo_module
  • From Reactive to Proactive: XRay’s New Approach to Troubleshooting
  • The OpenResty XRay Closed-Loop Approach

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
  • 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

Automated Root Cause Analysis: How OpenResty XRay Pinpoints Failures Down to the Code Line

  • Why More Observability Data Doesn’t Mean Faster Root Cause Analysis
  • How XRay’s Automated Root Cause Analysis Differs from Traditional Monitoring
  • Automated Root Cause Analysis in Action: Three Production Cases
  • FAQ
  • Why More Observability Data Doesn’t Mean Faster Root Cause Analysis
  • How XRay’s Automated Root Cause Analysis Differs from Traditional Monitoring
  • Automated Root Cause Analysis in Action: Three Production Cases
  • FAQ

Node.js Function Probe: Capture Live Function Arguments Without Changing Code

  • Why Trace Node.js Functions Without Modifying Code
  • How to Capture Node.js Function Arguments Without Modifying Code
  • How Teams Use Non-Invasive Node.js Probes in Production
  • Why Trace Node.js Functions Without Modifying Code
  • How to Capture Node.js Function Arguments Without Modifying Code
  • How Teams Use Non-Invasive Node.js Probes in Production

The Nginx Worker That Refused to Serve More Than 300 RPS: Traced to a 75ms Event-Loop Block

  • High Load but No Useful Work: CPU Contention from a Missing worker_cpu_affinity
  • How Blocking Lua I/O Calls Halted the Nginx Event Loop
  • Measuring File I/O Latency: Up to 1.5ms per Call
  • How Bad Was the Nginx Event-Loop Blocking? 43,952 Samples, a 75ms Worst Case
  • Frequently Asked Questions
  • High Load but No Useful Work: CPU Contention from a Missing worker_cpu_affinity
  • How Blocking Lua I/O Calls Halted the Nginx Event Loop
  • Measuring File I/O Latency: Up to 1.5ms per Call
  • How Bad Was the Nginx Event-Loop Blocking? 43,952 Samples, a 75ms Worst Case
  • Frequently Asked Questions

Non-Invasive Node.js CPU Profiling with Flame Graphs

  • High CPU Usage Issues in Node.js Applications
  • CPU Blocking Issues in Node.js Applications
  • Automated Sampling and Expert Analysis
  • Performance Impact and Overhead
  • Future Plans
  • High CPU Usage Issues in Node.js Applications
  • CPU Blocking Issues in Node.js Applications
  • Automated Sampling and Expert Analysis
  • Performance Impact and Overhead
  • Future Plans

Nginx Core Dump Analysis: Catch a Worker Process Crash at the First Scene

  • The Case: Frequent Nginx Worker Process Crashes No Log Could Explain
  • Analyzing the Recording: Replaying the Crash Back to the First Scene
  • Root Cause: A Use-After-Free in Nginx’s Connection Lifecycle
  • Frequently Asked Questions
  • The Case: Frequent Nginx Worker Process Crashes No Log Could Explain
  • Analyzing the Recording: Replaying the Crash Back to the First Scene
  • Root Cause: A Use-After-Free in Nginx’s Connection Lifecycle
  • Frequently Asked Questions

UDB + OpenResty XRay: Unlocking the Mystery of OpenResty Application Performance

  • How OpenResty XRay Enhances Efficiency with UDB
  • Hands-On: Analyzing OpenResty Lua Call Stacks with UDB and OpenResty XRay
  • Advantages of Time-Travel Debugging
  • Summary
  • How OpenResty XRay Enhances Efficiency with UDB
  • Hands-On: Analyzing OpenResty Lua Call Stacks with UDB and OpenResty XRay
  • Advantages of Time-Travel Debugging
  • Summary

How to Debug File I/O in Java with Time-Travel Call Stacks

  • Where IDE Breakpoints and Coredumps Fall Short in Java File I/O
  • Reconstructing the Full Java Call Stack from a Native write() Syscall
  • Debug Java File I/O Step by Step with Time-Travel Replay
  • Frequently Asked Questions
  • Where IDE Breakpoints and Coredumps Fall Short in Java File I/O
  • Reconstructing the Full Java Call Stack from a Native write() Syscall
  • Debug Java File I/O Step by Step with Time-Travel Replay
  • Frequently Asked Questions

Unveiling Python Code Execution with UDB

  • The Unique Value of UDB in Python Debugging
  • Enhancing Debugging Capabilities with OpenResty XRay
  • Real-World Example: Analyzing Python Network Request Call Stacks
  • Summary
  • The Unique Value of UDB in Python Debugging
  • Enhancing Debugging Capabilities with OpenResty XRay
  • Real-World Example: Analyzing Python Network Request Call Stacks
  • Summary

Tracing an LRU Cache Memory Leak in OpenResty — Down to the Cached SSL Certificates

  • Why a Low-Traffic OpenResty App Kept Leaking Memory
  • How We Traced the LRU Cache Memory Leak, Step by Step
  • The Result: From Unbounded Growth to Stable Memory
  • Why a Low-Traffic OpenResty App Kept Leaking Memory
  • How We Traced the LRU Cache Memory Leak, Step by Step
  • The Result: From Unbounded Growth to Stable Memory

Uneven Nginx Worker CPU Usage: Tracing a Missing reuseport Flag and a cjson Hotspot

  • The Symptom: Some Nginx Workers Maxed Out While Others Sat Idle
  • How OpenResty XRay Pinpointed the Root Causes
  • The Fix: Three Optimizations and Their Measured Gains
  • Summary: What OpenResty XRay Found in Minutes
  • Frequently Asked Questions
  • What is OpenResty XRay
  • The Symptom: Some Nginx Workers Maxed Out While Others Sat Idle
  • How OpenResty XRay Pinpointed the Root Causes
  • The Fix: Three Optimizations and Their Measured Gains
  • Summary: What OpenResty XRay Found in Minutes
  • Frequently Asked Questions
  • What is OpenResty XRay

The Swiss Army Knife for Dynamic Tracing, How Ylang Tames Complexity

  • Industry Pain Point: Why We Desperately Need a New Tracing Language
  • The Core Tech: What Makes Y Language a Game-Changer?
  • Ylang Syntax: The Familiarity of C, The Power of Advanced Tracing
  • Killer Applications: Solving Problems Beyond the Reach of Traditional Tools
  • Universal Platform Support: Y Lang Goes Everywhere
  • Compiler Wizardry: Forging a Superior Language with Superior Tools
  • Industry Pain Point: Why We Desperately Need a New Tracing Language
  • The Core Tech: What Makes Y Language a Game-Changer?
  • Ylang Syntax: The Familiarity of C, The Power of Advanced Tracing
  • Killer Applications: Solving Problems Beyond the Reach of Traditional Tools
  • Universal Platform Support: Y Lang Goes Everywhere
  • Compiler Wizardry: Forging a Superior Language with Superior Tools

Why Dynamic Tracing is the Future of Production Troubleshooting

  • The Unseen Crisis in Modern Software
  • Why Traditional Tools Are Failing
  • Dynamic Tracing: The New Paradigm for Troubleshooting
  • The OpenResty XRay Difference
  • From Firefighting to True Observability
  • The Unseen Crisis in Modern Software
  • Why Traditional Tools Are Failing
  • Dynamic Tracing: The New Paradigm for Troubleshooting
  • The OpenResty XRay Difference
  • From Firefighting to True Observability

Deep Dive into Dynamic Tracing Technology: How OpenResty XRay Revolutionizes Problem Diagnosis

  • Dynamic Tracing: A Powerful Tool for Solving Complex System Issues
  • Why Choose OpenResty XRay?
  • Product Focus: XRay Applications in Real-World Scenarios
  • Common Misconceptions and FAQs: What You Might Want to Know About Dynamic Tracing
  • Dynamic Tracing: A Powerful Tool for Solving Complex System Issues
  • Why Choose OpenResty XRay?
  • Product Focus: XRay Applications in Real-World Scenarios
  • Common Misconceptions and FAQs: What You Might Want to Know About Dynamic Tracing

The Next Stop for Observability: How OpenResty XRay Redefines Problem Troubleshooting

  • Why is Problem Troubleshooting Becoming Increasingly Difficult in Modern Software Architecture?
  • Trend Insights: The Future of Observability Technology
  • How Does Dynamic Tracing Technology Break Through Abstraction Layers?
  • Use Case: Real-time Statistics of Plugin Resource Consumption in Production Kong Services
  • Conclusion
  • Why is Problem Troubleshooting Becoming Increasingly Difficult in Modern Software Architecture?
  • Trend Insights: The Future of Observability Technology
  • How Does Dynamic Tracing Technology Break Through Abstraction Layers?
  • Use Case: Real-time Statistics of Plugin Resource Consumption in Production Kong Services
  • Conclusion

Traditional Methods vs. Dynamic Tracing: A Revolution in Efficiency and Control

  • A Revolution in Efficiency and Control
  • Dynamic Tracing: X-Ray Vision for Your Systems
  • From Flame Graphs to System Panorama
  • Why Choose OpenResty XRay?
  • The Future of Observability: New Frontiers in Dynamic Tracing
  • A Revolution in Efficiency and Control
  • Dynamic Tracing: X-Ray Vision for Your Systems
  • From Flame Graphs to System Panorama
  • Why Choose OpenResty XRay?
  • The Future of Observability: New Frontiers in Dynamic Tracing

Why is Dynamic Tracing Difficult to Implement? How Does OpenResty XRay Break Through?

  • Why is Problem Troubleshooting Becoming Increasingly Difficult in Modern Software Architecture?
  • Trend Insights: The Future of Observability Technology
  • How Does Dynamic Tracing Technology Break Through Abstraction Layers?
  • Use Case: Real-time Statistics of Plugin Resource Consumption in Production Kong Services
  • Conclusion
  • Why is Problem Troubleshooting Becoming Increasingly Difficult in Modern Software Architecture?
  • Trend Insights: The Future of Observability Technology
  • How Does Dynamic Tracing Technology Break Through Abstraction Layers?
  • Use Case: Real-time Statistics of Plugin Resource Consumption in Production Kong Services
  • Conclusion

Self-Optimization: The Performance Evolution of OpenResty XRay

  • Challenges and Pain Points
  • OpenResty XRay’s Self-Analysis Process
  • Remarkable Optimization Results
  • Technical Insights and Business Value
  • Conclusion
  • Challenges and Pain Points
  • OpenResty XRay’s Self-Analysis Process
  • Remarkable Optimization Results
  • Technical Insights and Business Value
  • Conclusion

Case Study: OpenResty XRay Doubles Ylang Compiler Performance

  • Case Study: OpenResty XRay Doubles Ylang Compiler Performance
  • Significant Optimization Results
  • Ylang Language: The Ideal Tool for Dynamic Tracing
  • A Model of Technical Synergy
  • Further Reading
  • Case Study: OpenResty XRay Doubles Ylang Compiler Performance
  • Significant Optimization Results
  • Ylang Language: The Ideal Tool for Dynamic Tracing
  • A Model of Technical Synergy
  • Further Reading

Java Tomcat Slow Response Time: Pinpoint the Exact Slow Request with PCAP

  • Diagnose Tomcat slow response time by catching the exact slow request
  • Selective packet capture: filter by duration, status, and path
  • Per-request PCAP download for one specific slow request
  • Tell server-side latency from network delay
  • Works for Spring Boot apps with embedded Tomcat
Photo by Yichun Zhang
  • Diagnose Tomcat slow response time by catching the exact slow request
  • Selective packet capture: filter by duration, status, and path
  • Per-request PCAP download for one specific slow request
  • Tell server-side latency from network delay
  • Works for Spring Boot apps with embedded Tomcat

Java Application Profiling: CPU, Off-CPU & Disk I/O Without Safepoint Bias

  • Profiling Java CPU hotspots with flame graphs
  • Off-CPU Java profiling: lock contention and blocking analysis
  • Java disk I/O profiling: tracing file and socket writes
  • OpenJDK 8/11/17/21 application profiling support
  • Automated sampling and expert analysis
  • Performance impact and overhead
  • FAQ
Photo by Yichun Zhang
  • Profiling Java CPU hotspots with flame graphs
  • Off-CPU Java profiling: lock contention and blocking analysis
  • Java disk I/O profiling: tracing file and socket writes
  • OpenJDK 8/11/17/21 application profiling support
  • Automated sampling and expert analysis
  • Performance impact and overhead
  • FAQ
Contact us

Love to hear from you, Get in touch 👋

Message was sent successfully!

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