从 1 秒到 10 毫秒!在 APISIX 中减少 Prometheus 请求阻塞

Apache APISIX在微软云 ARM 和 x86 服务器上的性能测试对比 本文主要使用 Apache APISIX 来对比 Azure Ddsv5 和 Azure Dpdsv5 的性能。从结果可以看出 Azure Dpdsv5 相比 Ddsv5,表现虽然不是那么亮眼,但是由于该系列的机型尚处于预览版,微软正在进行持续的改进和优化,我们也非常期待它的后续表现。... 阅读详情

本文介绍了 Prometheus 插件造成长尾请求现象的原因,以及如何解决这个问题。

作者屠正松,Apache APISIX PMC Member。

原文链接

现象

在 APISIX 社区中,曾有部分用户陆续反馈一种神秘现象:部分请求延迟较长。具体表现为:当流量请求进入一个正常部署的 APISIX 集群时,偶尔会出现部分请求有 1 ~ 2 秒的延迟。用户的 QPS 规模大概在 1 万,但是这种异常请求非常少见,每隔几分钟就会出现 1 ~ 3 次。一些用户在 issue 中也提供了捕获到的延迟较长的请求。从这些截图中可以看出,确实有请求延迟较高,甚至可以达到秒级别。

High Latency Requests 1.png

High Latency Requests 2.png

这种现象伴随着另一种现象:某个 worker 进程的 CPU 占用率达到了 100%。

100% CPU.png

开发团队通过不同渠道与这些反馈的用户沟通得知,这个现象发生的条件是:

  1. 开启 prometheus 插件,并且有 Prometheus Exporter 访问 APISIX 的 endpoint /apisix/prometheus/metrics 来采集指标;
  2. prometheus 插件统计的 metrics 的数量达到一定规模,通常是上万级别;

这个现象是在业界称为 “长尾请求”,是指在一个请求群体中,大部分请求响应时间较短,但有少部分请求响应时间较长的情况。它可能是由于后端系统的性能瓶颈、资源不足或其他原因导致的。它不是一个致命的 bug,但是它严重影响了终端用户的体验。

抽丝剥茧

APISIX 基于一个开源的 Lua 库 nginx-lua-prometheus 开发了 Prometheus 插件,提供跟踪和收集 metrics 的功能。当 Prometheus Exporter 访问 APISIX 暴露的 Prometheus 指标的 endpoint 时,APISIX 会调用 nginx-lua-prometheus 提供的函数来暴露 metrics 的计算结果。

开发团队从社区用户,企业用户等渠道收集汇总了长尾请求发生的条件,基本定位了问题所在:nginx-lua-prometheus 中用于暴露 metrics 指标的函数 prometheus:metric_data()。

不过这只是初步推断,还需要直接的证据来证明长尾请求与此有关,并且需要搞清楚以下问题:

  1. 这个函数具体做了什么?
  2. 这个函数为什么会造成长尾请求现象?

开发团队构造了本地复现环境,这个复现环境主要模拟以下场景:

  1. 模拟客户端发送正常请求,被 APISIX 代理到上游
  2. 模拟 Prometheus Exporter 每隔 5 秒访问 /apisix/prometheus/metrics,触发 APISIX 运行 prometheus:metric_data() 函数

复现环境示意图:

APISIX插件开发指南:从入门到实践 API网关作为微服务架构的核心组件,其插件机制直接决定了系统的扩展能力。APISIX作为高性能开源API网关,通过Lua语言实现的插件系统支持热加载和动态配置,相比传统Nginx模块开发更加灵活高效。插件开发涉及配置校验、请求阶段处理和共享内存管理等关键技术点,广泛应用于流量控制、安全认证和协议转换等场景。掌握APISIX插件开发不仅能提升微服务架构的灵活性,还能通过热词中提到的热加载和Lua模块等特性显著降低运维成本。本文以实际工程实践为例,详细解析插件从开发到部署的全流程。 阅读详情

相关推荐

DeepSeek模型生产部署:稳定性优化与安全防护实战指南

大语言模型(LLM)部署在生产环境中,面临着资源管理、并发处理和安全防护等多重挑战。其核心原理在于通过高效的注意力机制和参数计算生成文本,技术价值体现在为企业提供智能对话、内容生成等能力。在实际应用场景中,模型服务需要处理高并发请求并保障长期稳定运行,同时防范潜在的安全风险。本文聚焦于DeepSeek模型的部署实践,深入探讨了如何通过资源优化、并发调优和API安全加固,解决服务稳定性问题并构建安全防线,确保模型服务在真实业务场景中可靠、高效地对外提供服务。

dflkg8956的专栏 380

从TCP到QUIC:现代通信网络核心协议与架构演进实战解析

通信网络作为数字世界的基石,其核心是实现信息在节点间可靠、高效的传输。其基本原理涉及从物理层到应用层的分层模型,通过协议栈协同工作。在技术价值层面,现代网络已从简单的连接功能演进为支撑复杂分布式系统协同的关键基础设施,直接决定了系统的可扩展性、可靠性与性能。应用场景广泛覆盖了微服务通信、实时音视频、云原生架构及边缘计算等领域。本文聚焦于网络协议选型与架构演进,深入探讨了TCP与UDP的经典抉择、HTTP/2与gRPC的性能优化,并分析了服务网格如何将通信能力基础设施化,以及QUIC协议如何解决传统TCP的队

weixin_30654419的博客 428

AI模型部署实战:从训练到生产级Web服务的工程化指南

模型部署是将训练好的机器学习模型转化为可对外提供服务的在线系统的关键环节。其核心原理在于通过Web服务框架将模型推理逻辑封装成标准API接口,实现模型能力的远程调用。这一过程的技术价值在于解决了模型从实验室到生产环境的‘最后一公里’问题,确保了服务的稳定性、高性能与可维护性。在实际应用场景中,无论是图像分类、文本生成还是推荐系统,都需要通过工程化手段应对高并发、低延迟和资源管理等挑战。本文以FastAPI和Docker为例,系统性地拆解了构建一个稳定、高效的AI推理服务的全流程,涵盖了环境配置、服务开发、容

weixin_34344403的博客 381

中间件技术全解析:从核心原理到微服务实战应用

中间件作为连接操作系统、数据库与业务应用的关键软件层,其核心原理在于为分布式系统提供通用、可复用的服务,如通信、数据集成与事务管理。在技术价值上,它通过解耦系统组件、提升可扩展性与可用性,让开发者能专注于业务逻辑创新,而非重复构建基础设施。随着微服务与云原生架构的普及,中间件在应对流量洪峰、保障系统高可用方面的作用日益凸显,典型应用场景包括异步消息处理、服务治理、缓存加速等。本文聚焦于消息队列、API网关、服务注册发现等主流中间件,深入探讨其选型指南与实战配置,并结合Kafka、RocketMQ等热词,解析

383

【信息科学与工程学】计算机科学与自动化 第二百三十三篇 凤凰架构01

编号类型领域系统软件/硬件或系统集成方案及系统架构模块子模块函数名称/算法名称算法的数学分析及计算机体系架构及数据结构与算法详细设计及参数列表及数值范围设计关联知识1共识算法分布式基石状态机复制架构:Proposer/Acceptor/Learner 多节点角色模型,基于操作转移(Operation Transfer)分布式共识PaxosPaxos 协议(Prepare/Promise/Accept/Accepted 两阶段)数学基础:多数派(Quorum)投票,基于鸽巢原理保证 W+R>N 时读写集合必有

weixin_49199313的博客 263

【信息科学与工程学】【数据中心】第二十三篇 DDC网络-满足大规模训练、推理、存储区网络(Roce2组网)-第三篇 流量采集和监控

1.2 详细采集协议部署矩阵 协议类别协议名称部署位置采集频次采集策略采集内容采样率数据量(GB/天)处理方式物理层采集​LLDP/CDP所有网络设备30秒轮询全量采集邻居信息、设备能力100%0.1实时处理PoE状态接入交换机60秒轮询全量采集PoE供电状态、功率100%0.05实时处理温度/风扇所有网络设备30秒轮询全量采集温度、风扇转速100%0.1实时处理光功率光模块60秒轮询全量采集发送/接收光功率100%0.2实时处理网络层采集​NetFlow v9核心/边界30秒导

weixin_49199313的博客 729

【信息科学与工程学】【数据中心】 第七篇 智算中心CLOS组网整体设计

区域主要功能网络要求技术选型安全等级可用性要求训练区​大规模AI模型训练,分布式计算超高带宽(100G+),超低延迟(<1ms),无损网络RoCEv2,PFC,DCQCN,多路径P4(最高)99.99%推理区​实时AI推理,模型服务低延迟(<10ms),高可用,弹性扩展智能负载均衡,服务网格,容器网络P3(高)99.999%公共服务区​统一认证,API网关,数据服务多租户隔离,安全防护,弹性带宽VXLAN,EVPN,微隔离P3(高)99.99%存储区​高性能存储,数据湖超高带宽,低延迟,高IOPSNVMe-

weixin_49199313的博客 1371

【信息科学与工程学】计算机科学与自动化——第八十四篇 C++分布式软件高并发/高可用算法01

4. 提交:协调者选择提交时间戳(>所有读时间戳),两阶段提交:a) 写意图预提交到所有参与者,b) 参与者持久化后确认,c) 协调者决定提交,异步清理意图。:客户端请求发送到协调节点,协调节点根据路由转发到主分片所在节点。Span有父子关系。1. 索引文档:客户端发送PUT请求到协调节点,协调节点路由到主分片节点,主分片写入本地,然后并行复制到副本分片,等待确认后响应客户端。3. 搜索:客户端发送搜索请求到协调节点,协调节点广播到所有相关分片,每个分片执行查询,返回结果,协调节点合并、排序、分页后返回。

weixin_49199313的博客 1077

【信息科学与工程学】【数据中心】 第二十三篇【智算中心】DDC网络-满足大规模训练、推理、存储区网络(Roce2组网)-01

设计维度目标值设计原则实现手段评估指标性能目标​端到端延迟<10ms低延迟优先RDMA优化,拓扑扁平化延迟分布,p99延迟可用性目标​99.99%可用性冗余设计多路径,设备冗余MTBF,MTTR吞吐目标​核心交换>10Tbps无阻塞交换大带宽核心,Clos架构对分带宽扩展性目标​线性扩展至1000节点模块化设计标准Pod架构扩展成本函数安全目标​零信任架构纵深防御微分段,加密传输安全事件数能效目标​PUE<1.2绿色计算高效设备,智能调度能效比(W/IOPS) 2. 物理拓扑设计 2.1 数据中心物理

weixin_49199313的博客 559

【信息科学与工程学】【数据中心】 第三篇 智算中心全业务场景矩阵

技术:MPI/OpenMP优化、InfiniBand/RoCE网络、Lustre/GPFS并行文件系统。技术:NVLink/NVSwitch高速互联、RDMA网络、检查点存储、混合精度训练。技术:Kubernetes运营商、服务网格、Serverless框架。技术:VXLAN/EVPN、SRv6、智能网卡、DPDK/智能网卡。运营:AI框架优化、显存优化、容错训练、多租户GPU隔离。技术:KVM/ESXi虚拟化、SR-IOV、智能网卡、快速发放。

weixin_49199313的博客 1073

【信息科学与工程学】计算机科学与自动化——第三百零四篇 高性能系统开发指南01

高并发:限流、熔断、降级高性能:红包拆分、多级缓存、大Key/热Key拆分、Pipeline、线程池、RocketMQ零丢失、幂等、分布式锁、集群缩容、分批入库海量数据处理:日志分表分片、跨表查询、冷热分层、大数据引擎服务器选型系统安全:网关安全、服务器安全、云存储安全、风控、监控、测试数据一致性:缓存与数据库一致性、大厂方案、蓝绿回滚、流量一致性、流程一致性项目与团队管理:流程问题、管理问题(风险、成本、人员、文档、培训)稳定性建设:上线三板斧、线上五步闭环、混沌工程、容量规划。

weixin_49199313的博客 249

nginx-lua-prometheus:用Lua编写的Nginx的Prometheus度量库

适用于Nginx的Prometheus指标库 这是一个Lua库,可以与Nginx一起使用,以跟踪指标并将其公开在一个单独的网页上,以供提取。 安装 您需要安装具有lua支持的nginx软件包(在较新的Debian版本上为libnginx-mod-http-lua在较旧的Debian版本上为nginx-extras )。 库文件prometheus.lua必须在LUA_PATH可用。 如果这是您使用的唯一Lua库,则只需将lua_package_path指向此git repo签出的目录即可(请参见下面的示例)。 OpenResty用户将在找到此库。 也可以通过被获得。 快速入门指南 要跟踪按服务器名称细分的请求延迟以及按服务器名称和状态细分的请求计数,请将以下内容添加到nginx.conf的http部分: lua_shared_dict prometheus_metrics 10M; lua_package_path "/path/to/nginx-lua-prometheus/?.lua;;"; init_worker_by_lua_block { prometheus = r

服务器安装Ubuntu 18.04.2 LTS超详细步骤(小白图文详解)

服务器安装Ubuntu 18.04.2 LTS超详细步骤(小白图文详解) 本文不包括启动盘制作步骤,相关内容可自行百度 华为服务器 1 插入u盘,关机重启 2 初始化界面后进入到系统的BIOS设置界面 (华为服务器按Del键,不同品牌方法不同) 3 进入的时候,华为的服务器默认设置了BIOS密码,因此需要输入之前预设的密码。 注意密码大小写问题,若密码输错三次,则需重启 4 密码输入以后,进入...

crystalbang的博客 2万+

Kolla 容器化 高可用OpenStack 部署与 Ceph 集群集成

本文介绍了 Kolla 项目在容器化 OpenStack 部署和管理方面的应用,以及与 Ceph 集群的集成。Kolla 项目通过容器技术提供了一种简化和自动化的 OpenStack 部署方法,同时实现了易于升级和回滚的特点。本文还探讨了 Kolla 在实现零宕机升级方面的进展,并分析了其对 OpenStack 用户和社区的重要意义。

we22635的博客 2702

Cadence Virtuoso实战:NMOS差分放大器设计与SPICE仿真全解析

本文详细解析了使用Cadence Virtuoso设计NMOS差分放大器并进行SPICE仿真的全流程。从基础设计要点、原理图绘制到工作点分析与性能调优,提供了实用的设计技巧和常见问题解决方案,帮助工程师高效完成模拟集成电路设计。重点介绍了差分放大器的关键参数设置、饱和区优化及版图设计注意事项,适用于ADC、DAC等高性能电路开发。

weixin_28340315的博客 610

滑模控制算法——基本原理(附MATLAB程序)

选择一个滑模面和是设计参数。是滑模面函数,通常我们希望系统状态在的面上滑动。我们以一个简单的二阶系统作为示例,其状态空间方程为:是系统矩阵是输入矩阵是输出矩阵假设我们的系统如下:滑模控制算法的核心在于设计合适的滑模面和控制律,并分析系统在滑模面上的稳定性。通过上述公式和步骤,可以有效地设计滑模控制器,以处理具有非线性和不确定性的动态系统。总的来说,滑模控制算法因其鲁棒性和灵活性在处理复杂控制问题中表现出色,但在实际应用中需要精心设计以克服抖振现象和其他潜在问题。BuxuABDC。

qq_35623594的博客 2万+

从驱动编译到数据传输:RK3588与FPGA的PCIe通信实战解析

本文详细解析了RK3588与FPGA通过PCIe通信的实战过程,涵盖驱动编译、数据传输及性能优化等关键步骤。通过XDMA驱动实现高效DMA传输,适用于视频处理、数据采集等高性能场景,帮助开发者快速掌握嵌入式系统中的PCIe通信技术。

weixin_29214691的博客 522

【人工智能】在 cc-switch 中配置 AnyRouter 接入 Claude Code 完整指南

本文介绍了在cc-switch工具中配置AnyRouter中转服务以接入Claude Code的详细步骤。主要内容包括:1) 准备API令牌和端点地址;2) 填写基础信息和模型参数;3) 保存配置并重启终端生效;4) 常见问题排查方法。重点强调了API地址格式、模型ID准确性以及配置写入的必要性,帮助用户顺利完成中转服务配置,实现Claude 4.5版本的正常使用。

奶爸的编程之路,也就一周冷个三天 3103

智能硬件产品 App 全球发布 第 1 章:全球 App 发布战略设计

本章阐述智能硬件 App 全球发布战略,涵盖市场分析、竞争格局、用户画像及资源配置。通过制定可执行的全球化推广路径,整合地区法规合规、渠道分发策略与营销活动设计,助力团队快速进入主流商店并确立品牌影响力。同时构建可量化的 KPI 监控体系,指导项目进度追踪与效果复盘,确保产品迭代持续优化,降低运营总成本。

moton2017的博客 156

YOLO26中 RepVGGBlock_OREPA 架构的设计与性能提升分析(mAP +4.89)

REPVGGOREPA模块代表了重参数化技术的最新发展,它通过巧妙的架构设计实现了训练时的丰富表达和推理时的高效计算。其核心创新包括多分支特征聚合、动态权重生成、频域先验知识融合等技术,为深度学习模型的效率优化提供了新的解决方案。这种设计理念不仅在技术上具有重要意义,在实际应用中也展现出了显著的优势,特别是在需要高精度和高效率的工业场景中表现突出。随着重参数化技术的不断发展,REPVGGOREPA为未来的网络架构设计提供了重要的参考和启发。

know_F0727的博客 66

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: 微服务为什么要用到 API 网关?
下一篇: 让 API 管理效率更进一步的 API7 DevPortal
API7.ai 技术团队
博客等级 码龄5年 165粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

API7.ai 技术团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值