如何利用 Nginx 控制台 (OpenResty Dashboard) 实时可视化 worker 负载

陌敏吖_1473

陌敏吖_1473

2026-05-21

388人浏览

原创

OpenResty Dashboard 是官方推荐的轻量级可视化控制台,可实时呈现 worker 级 CPU、内存、连接数及请求速率等指标,无需埋点;需运行于 OpenResty 环境,配置启用模块与 dashboard_monitor 指令,并通过 /dashboard 路径访问,支持 Worker Overview、Per-Worker Detail 和 Real-time Flame Graph 三大核心视图用于性能诊断。

如何利用 nginx 控制台 (openresty dashboard) 实时可视化 worker 负载

OpenResty Dashboard 是 OpenResty 官方推荐的轻量级可视化控制台,能直接暴露 Nginx(尤其是 OpenResty)内部运行时指标,其中 worker 级别的 CPU、内存、连接数、请求处理速率等均可实时呈现,无需额外埋点或代理。

确认基础依赖与启用状态

Dashboard 本身是基于 OpenResty 的 Lua 应用,必须运行在 OpenResty 环境中(非原生 Nginx)。检查是否已启用:

  • 确认安装的是 OpenResty(如 1.21.4.2+),而非普通 Nginx;可通过 openresty -v 验证
  • 确保 resty-dashboard 已安装:运行 opm get openresty/resty-dashboard
  • 主配置中需加载模块:load_module modules/ndk_http_module.so; 和 load_module modules/echo_http_module.so;(部分版本需手动开启)

配置 Dashboard 接入端点

在 nginx.conf 的 http 块内添加如下配置段:

    # 启用 Dashboard 内置服务
    dashboard_monitor on;
    dashboard_monitor_path /dashboard;
<pre class="brush:php;toolbar:false;"># 可选:限制访问来源
location /dashboard {
    allow 127.0.0.1;
    allow 192.168.0.0/16;
    deny all;
    content_by_lua_block {
        require "resty.dashboard".content()
    }
}

重载配置后,访问 http://your-server-ip/dashboard 即可进入控制台首页。

Nginx Reverse Proxy
Nginx Reverse Proxy

配置 Nginx 反向代理,实现域名绑定。用户说“绑定域名”“配置 Nginx”“反向代理”时触发,将域名绑定到指定 IP:端口。

下载

重点查看 worker 负载的 3 个核心视图

Worker Overview 页面顶部显示所有 worker 进程的实时快照:

  • CPU %:每个 worker 当前 CPU 使用率(非系统级,而是进程内实际消耗,精度高)
  • Requests/sec:每秒请求数,按 worker 分列,可快速识别“热点 worker”
  • Active Conn:当前活跃连接数,结合 worker_connections 配置值,判断是否逼近上限

Per-Worker Detail 页面点击任一 worker PID,展开其完整指标:

  • 内存分配(Lua VM heap、C malloc usage)
  • 当前正在执行的 Lua handler 名称(如 access_by_lua* 或 content_by_lua*)
  • 最近 1 分钟内各阶段耗时分布(DNS lookup、upstream connect、response write)

Real-time Flame Graph(需开启采样):

  • 点击右上角 “Record CPU Profile” 按钮,持续 30 秒,自动生成 On-CPU 火焰图
  • 图中顶部宽色块直接对应高耗时 Lua 函数或 Nginx C 函数(如 ngx_http_lua_ffi_socket_tcp_connect)
  • 支持按 worker PID 过滤,精准定位某一个异常 worker 的瓶颈函数

关键使用提示

Dashboard 默认每 2 秒自动刷新一次,但以下设置可提升诊断有效性:

  • 若发现某 worker CPU 持续高于其他 worker,先检查其绑定的 CPU 核心是否被争抢(可用 taskset -cp 查看)
  • “Requests/sec” 值突降但 “Active Conn” 居高不下,大概率是 upstream 响应阻塞或 Lua 中同步 I/O(如 os.execute)
  • 火焰图中出现大量 lua_gc 或 lj_BC_ITERL,说明 Lua 对象生命周期管理不当,需检查 table 复用或闭包泄漏

相关专题

更多
Grafana重置admin密码
Grafana重置admin密码

本专题整合了grafana admin密码相关教程,阅读专题下面的文章了解更多详细内容。

2025.09.02

2474

12

Grafana admin密码
Grafana admin密码

本专题整合了Grafana密码相关教程,阅读专题下面的文章了解更多详细内容。

2025.12.09

730

9

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

20

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

20

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

20

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

20

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习