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

Python Process Stuck at 8% CPU: Off-CPU Analysis Traces a Blocking subprocess.run Call

  • The symptom: Python process CPU usage stays low under heavy requests
  • Find the blocking Python code paths with OpenResty XRay’s Guided Analysis
  • Automatic analysis and reports in the Insights page
  • FAQ
  • What is OpenResty XRay
  • About The Author
  • The symptom: Python process CPU usage stays low under heavy requests
  • Find the blocking Python code paths with OpenResty XRay’s Guided Analysis
  • Automatic analysis and reports in the Insights page
  • FAQ
  • What is OpenResty XRay
  • About The Author

Lua High CPU Usage: Find the Hottest Lua Code Path in Nginx/OpenResty

  • The symptom: an Nginx worker process using almost 100% CPU
  • Find the hottest Lua code path with Guided Analysis
  • Monitor Lua CPU usage automatically with Insights reports
  • Frequently asked questions
  • The symptom: an Nginx worker process using almost 100% CPU
  • Find the hottest Lua code path with Guided Analysis
  • Monitor Lua CPU usage automatically with Insights reports
  • Frequently asked questions

Kong Plugin High CPU Usage: A Hidden Lua Exception Traced with Flame Graphs

  • The problem: Kong plugin high CPU usage under light traffic
  • Finding the CPU bottleneck with an OpenResty XRay flame graph
  • The result: Kong CPU usage cut from 80% to 50%
Photo by Yichun Zhang
  • The problem: Kong plugin high CPU usage under light traffic
  • Finding the CPU bottleneck with an OpenResty XRay flame graph
  • The result: Kong CPU usage cut from 80% to 50%

Find Leaked Lua Tables: the registry / _LOADED (package.loaded) Reference Path in OpenResty XRay

  • How LuaJIT manages memory
  • OpenResty XRay’s command-line tools
  • A leaking Lua table example
  • Breaking down memory by LuaJIT GC object type
  • Reading the lj-gco-ref flame graph: registry, _LOADED, package.loaded
  • Fully-automated Lua memory leak analysis
  • How LuaJIT manages memory
  • OpenResty XRay’s command-line tools
  • A leaking Lua table example
  • Breaking down memory by LuaJIT GC object type
  • Reading the lj-gco-ref flame graph: registry, _LOADED, package.loaded
  • Fully-automated Lua memory leak analysis

Real-Time Request Counting against Nginx Processes via YSQL

  • How to install the run-ysql tool
  • Count total requests served in real time
  • Filter out specific requests
  • Using YSQL in the Web Console
  • True non-invasive tracing
Photo by Yichun Zhang
  • How to install the run-ysql tool
  • Count total requests served in real time
  • Filter out specific requests
  • Using YSQL in the Web Console
  • True non-invasive tracing

Configuring SNI proxies in OpenResty Edge

  • Create an SNI proxy application
  • Create an upstream and a page rule for the application
  • Test the SNI proxy application
  • Create an SNI proxy application
  • Create an upstream and a page rule for the application
  • Test the SNI proxy application

OpenResty Edge Static Files: Serve Assets from the Gateway with No Back-to-Source

  • Upload static files to the Global Static File storage
  • Create a page rule to serve them directly from the gateway
  • Test exact match, directory prefix, and ignored prefix
  • Upload static files to the Global Static File storage
  • Create a page rule to serve them directly from the gateway
  • Test exact match, directory prefix, and ignored prefix

OpenResty Edge TCP Load Balancing: Proxy TCP Services Without Editing Nginx Config

  • Create a TCP (stream) application in OpenResty Edge
  • Add an upstream and page rule for TCP load balancing
  • Test the TCP proxy by connecting to MySQL through an edge node
  • Frequently asked questions
  • Create a TCP (stream) application in OpenResty Edge
  • Add an upstream and page rule for TCP load balancing
  • Test the TCP proxy by connecting to MySQL through an edge node
  • Frequently asked questions
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