显示WordPress页面查询次数、加载时间和内存占用将下面代码添加到当前主题的 functions.php 文件中: //显示页面查询次数、加载时间和内存占用 function performance...( $visible = false ) { $stat = sprintf( '%d 次查询 耗时 %.3f seconds, 使用 %.2fMB 内存', get_num_queries(),
(2)Redis 瓶颈排查缓存命中率低:查看 Redis 命中率(info stats | grep keyspace_hits,命中率=keyspace_hits/(keyspace_hits+keyspace_misses...));若命中率 命中缓存,直接查数据库,导致数据库压力大;Redis 性能瓶颈:查看 Redis 每秒操作数(info stats | grep instantaneous_ops_per_sec...:用join查询或批量查询替代循环查询:// 优化前:循环查询每个订单的用户信息(N+1次查询)List orders = orderMapper.listByUserId(123)...} return user; }}缓存热点数据:将接口的高频查询结果(如用户信息、商品详情)缓存到 Redis,过期时间设为 5-10 分钟;避免缓存穿透:对不存在的 key(如查询不存在的用户...完善监控告警核心指标监控:接口:QPS、响应时间(P95/P99)、错误率;应用:CPU 使用率、内存使用率、线程池活跃数、GC 次数;数据层:数据库慢查询数、Redis 命中率、连接池使用率;工具选型
如果第二次查询的SQL和第一次查询的SQL完全相同(注意必须是完全相同,即使多一个空格或者大小写不同都认为不同)且开启了查询缓存,那么第二次查询就直接从查询缓存中取结果,可以通过下面的SQL来查看缓存命中次数...数目大说明可能有碎片,FLUSH QUERY CACHE会对缓存中的碎片进行整理,从而得到一个空闲块; ◈ Qcache_free_memory,缓存中的空闲内存; ◈ Qcache_hits,每次查询在缓存中命中时就增大...命中次数除以插入次数就是不中比率; ◈ Qcache_lowmem_prunes,缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。...查询缓存命中率 = (Qcache_hits - Qcache_inserts) / Qcache_hits * 100%。...示例,查询缓存碎片率=20.46%,查询缓存利用率= 62.26%,查询缓存命中率 = 1.94%,则命中率很差,可能写操作比较频繁,而且有些碎片。
Queries Using Plan Cache OPS:TiDB 集群每秒命中执行计划缓存的次数。执行计划缓存只支持 prepared statement 命令。...TiDB 开启执行计划缓存的情况下,存在三种使用情况:完全无法命中执行计划缓存:每秒命中次数为 0,因为应用使用 query 命令,或者每次 StmtExecute 执行之后调用 StmtClose 命令...完全命中执行计划缓存:每秒命中次数等于 StmtExecute 命令每秒执行次数。...部分命中执行计划缓存:每秒命中次数小于 StmtExecute 命令每秒执行次数,执行计划缓存目前存在一些限制,比如不支持子查询,该类型的 SQL 执行计划无法被缓存。...这会带来两个问题:执行每条 SQL 语句需要 4 个命令,以及 4 次网络往返。Queries Using Plan Cache OPS 为 0, 无法命中执行计划缓存。
2.2 Redis&MySQL访问QPS偏高通过监控平台可以看到从上游服务过来的收藏查询QPS相对访问Redis缓存的QPS放大了15倍,并且MySQL查询的最高QPS占上游访问量接近37%,这说明缓存并没有很高的命中率...既然不能依赖第三方,就是要从自身拥有的信息上,来能够缓存一部分最热的数据,使得查询能够大范围落到这些数据我们目前只有内容id,而内容id都是纯数字,数字本身的话可以按照大小来排列。...这里缓存的数量的抉择显得尤为重要,如果太小,那缓存的命中率不高,导致MySQL回表查询概率变大,如果太大,则初始化时比较耗费时间,或产生大Key问题。...3 HMGET查询新的收藏缓存查询QPS数量和上游过来查询的QPS正好能对应上?...2 MySQL连接并发数降低查询QPS的减少也降低了并发连接数,大概降低了3倍左右,最终也降低了等待连接次数??五、总结经过对本次问题的分析和解决,不难看出一个良好的缓存设计对于服务来说是多么的重要。
通过监控页发现入口流量并没有明显抖动,考虑到集群中的不同索引以及不同查询类型,总的入口流量可能会掩盖一些问题,所以继续查看各索引的分操作流量监控,发现索引 A 的scroll流量在故障发生时存在明显的波动...,从正常的 10qps 以内涨到最高 100qps 左右,这对于普通查询来说并不高,看来是 scroll 查询有些异样。...起因1: 先说结论:scroll 查询相对普通查询占用的内存开销大很多,考虑到遍历数据的场景,安全的量是控制在 10qps 左右。...和 range 等查询,只要重复出现2次即会被缓存起来,结合起来分析: terms查询并不需要scroll查询,使用普通查询就能解决需求,使用scroll查询增加了server负载 range查询重复次数达到了...isCostly阈值,也就是说每次遍历数据都会往filter cache中丢入几百万的缓存value,而且命中率极低(下次scroll查询的range起止条件有细微的变化),加大了server的gc负担
QPS(Query per Second):系统每秒处理查询次数,单位是次/秒。...对于互联网业务中,如果某些业务有且仅有一个请求连接,那么TPS=QPS=HPS,一般情况下用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器点击请求。...数据库指标 常用的数据库例如MySQL指标主要包括SQL、吞吐量、缓存命中率、连接数等,具体如下: 一级指标 二级指标 单位 解释 SQL 耗时 微秒 执行SQL耗时 吞吐量 QPS 个 每秒查询次数...吞吐量 TPS 个 每秒事务次数 命中率 Key Buffer命中率 百分之 索引缓冲区命中率 命中率 InnoDB Buffer命中率 百分比 InnoDB缓冲区命中率 命中率 Query Cache...命中率 百分比 查询缓存命中率 命中率 Table Cache命中率 百分比 表缓存命中率数 命中率 Thread Cache命中率 百分比 线程缓存命中率 锁 等待次数 次 锁等待次数 锁 等待时间
3.2 查询性能优化 3.2.1 基于 Redis 的分布式查询缓存 由于有赞的 Cube 数据都是 T+1 构建,在引入基于 Redis 的分布式查询缓存之前,我们首先开启了本地缓存,但是发现实际的缓存命中的效果有...比如在线上我们某一个集群中,15台查询节点,在上午的缓存命中率为 5%-8%,到下午的缓存命中率逐渐提升至 20%。 为什么选择 Redis 做分布式查询缓存?...最终使用 Redis 作为分布式的查询缓存,缓存命中率从单机缓存的 20%的命中率提升到了 41% 左右,cpu在单机缓存基础上下降25%左右,RT下降50%左右。...以一年的查询范围进行压测,优化后整体QPS提升40%,RT降低20%,部分场景RT降低50%,查询IO降低70%,QPS提升三倍以上。...优化前QPS达到 70 后,产生各种严重的锁竞争,RT随之升高,QPS也降低了。优化后性能监控,优化后QPS达到150后RT依然保持平稳。彻底根治了高并发场景下类加载引起的查询性能问题
例如:基础信息查询 SKILL入参合法性校验 SKILL多轮对话状态管理 SKILL文本结构化与格式 化SKILL复杂逻辑推理 SKILL外部工具、API调用 SKILL行业规则匹配 SKILL结果聚合与自然语言生成...SKILL 级缓存:以技能为维度,对高频、确定性结果进行本地或分布式缓存,避免重复模型推理。SKILL 级限流:对单个技能设置 QPS、分钟级调用次数、日累计 Token 上限,实现细粒度流控。...查询缓存:查看历史结果是否可复用。5. 缓存命中判断: 命中 → 直接进入结果聚合返回。未命中 → 进入模型路由。6. 模型路由:根据任务复杂度,简单任务选择小模型或复杂任务选择大模型。7....模型返回:企业成本优化核心是分级调用+缓存第一次运行时,没有缓存会输出结果,并进行缓存,第二次运行时缓存命中,从缓存输出结果;3....3.2 限流维度QPS 限流:每秒最大调用次数,防止瞬时流量冲击。分钟级限流:控制单位时间内调用总量,平滑流量。日累计调用量上限:防止恶意刷接口与异常消耗。单用户调用配额:避免单个用户占用大量资源。
直播弹幕系统 直播弹幕是一个读写 QPS 要求都很高,假设一个直播间有 100w 用户同时在线观看,假设弹幕的提交频率为有 10000条/秒,那么需要每秒同时推送给在线用户的次数为 100w * 10000...读服务:Redis 主要用于读缓存,缓存直播间最新的弹幕数据,采用直播间 ID 作为 Key。系统读服务最大 QPS = Redis 集群QPS。 Redis 存储结构选择:SortedSet。...缓存优化 如果能让最新的实时弹幕数据都能命中本地缓存,那性能是最高的,同时大幅度降低了 Redis 的读取压力。所以弹幕读服务可以每秒轮询 Redis 数据,构建本地缓存。...本地内存的使用量也随直播间的数量增长而膨胀,每个直播间的缓存的数据量降低,导致本地缓存的命中率降低,容易导致 GC 频繁。 ? 热点优化 如何降低本地缓存的使用量?...Push Server 从 Redis 中获取用户和直播间的订阅关系以及长连接信息。 连接代理只负责与客户端保持长连接。 海量的消息推送需要批量压缩。 ?
对 缓存穿透、缓存雪崩、缓存击穿 问题解决思路 缓存来由随着互联网系统发展的逐步完善,提高系统的qps,目前的绝大部分系统都增加了缓存机 制从 而避免请求过多......命中率 当存在热点数据时,LRU的效率很好,但偶发性的、周期性的批量操作会导致LRU命中率急剧下降,缓存污染情况比较严重。...LRU算法模型 新数据插入到链表头部; 每当缓存命中(即缓存数据被访问),则将数据移到链表头部; 当链表满的时候,将链表尾部的数据丢弃。 LRU-K算法设计 LRU-K中的K代表最近使用的次数。...主要目的 解决LRU算法“缓存污染”的问题。 核心思想 “最近使用过1次”的判断标准扩展为“最近使用过K次”。 命中率 LRU-K降低了“缓存污染”带来的问题,命中率比LRU要高。...LRU-K模型 数据第一次被访问,加入到访问历史记录表(简称记录表);在记录表中对应的K单元中设置最后访问时间=new(),且设置访问次数为1; 如果数据访问次数没有达到K次,则访问次数+1。
u sky -ppwd -h localhost ping 获取mysql当前的几个状态值 mysqladmin -u sky -ppwd -h localhost status 获取数据库当前的连接信息...data_length+index_length)/1024/1024,4) from information_schema.tables group by table_schema; 查看某个表的列信息...repair),分 析( analyze)和优化(optimize)MySQL Server 中的表 mysqlcheck -u root -p123456 --all-databases mysql qps...查询 QPS = Questions(or Queries) / Seconds mysql>SHOW /*!...50000 GLOBAL */ STATUS LIKE "Thread%" mysql 锁定状态:锁定状态包括表锁和行锁两种,我们可以通过系统状态变量获得锁定总次数,锁定造成其他线程等待的次数,以及锁定等待时间信息
、延迟、连接数、热key、大key数据库QPS、慢查询、锁等待、连接数、缓存命中率、主从延迟消息队列积压量、消费延迟、生产/消费速率第三方依赖成功率、P95、限流、超时、重试次数3.3业务侧指标HTTP200...10.结果分析方法10.1看趋势,不只看单点一次压测至少要看这些曲线:QPS/RPSP50P90P95/P99响应时间HTTP错误率业务错误率CPU内存GC数据库连接数慢查询锁等待缓存命中率/Redis...检查项:是否命中索引是否有全表扫描是否排序、分组、分页代价过高是否返回字段过多是否N+1查询是否锁等待严重13.2索引优化原则:为高频查询设计联合索引,不是给每个字段都建索引。.../P90/P95/P992xx/4xx/5xx比例超时数响应体大小16.2应用看板CPU、内存线程池/协程数GC次数和耗时错误日志数慢接口TopN16.3数据库看板查询QPS慢查询数连接数锁等待Buffer.../cache命中率主从延迟16.4缓存看板RedisQPS命中率P95延迟热key大key连接数16.5基础设施看板机器CPU/内存/磁盘/网络网关连接数负载均衡后端状态容器重启次数自动扩容事件17.调优优先级建议高优先级
大促开门红至11.11 缓存命中率趋势 系统整体可平稳承载流量,同时缓存命中率曲线,有一定的提升空间 预热思路:如何尽可能保持在大促等特定时段的缓存有效性,提升缓存命中率(降低击穿概率),可通过前置的多维度分析调研...以上数据证明,通过在开门红以及11.11大促等关键促销节点前,将集采期及前一促销期的SKU可用库存数据,进行缓存预热,有助于提升预占请求的缓存命中率。...3.1 背景 物流系统在订单出库后,由 订单明细查询应用,提供订单及其关联包裹明细信息的对外查询能力。...通过对10月12日线上数据观测,仓出库次数:“订单包裹明细查询接口”调用峰值(400000/6532200)≈1:16,相较“常规比例”偏差较大。...根据最终的回传内容(是否需要明细信息),判断调用的必要性,剔除非必要查询。 调整AB测试环境别名配置,避免测试流量对生产环境产生非必要压力。
而开启KMS加密且本地缓存未命中的情况下,同样的操作会额外增加一次KMSGenerateDataKey或Decrypt调用。...这条链路能否保持低延迟,取决于本地缓存命中率、KMS服务端处理能力以及网络路径的综合表现。以下从三个层面对这一调用关系做拆解。数据加密密钥与主密钥关系KMS体系下的加密逻辑采用信封加密。...使用JMeter或wrk等工具模拟线上真实负载,分别在KMS加密开启和关闭的情况下,记录数据库的TPS、P99延迟,以及COS上传/下载的QPS与平均延迟。...大多数云厂商的KMS服务会按API每秒调用次数划分配额,默认共享实例的QPS上限通常在数千次级别。...推荐每月抓取一次云审计中KMS调用记录,按密钥、操作类型和调用源IP聚合,计算P95、P99调用延迟和限流次数。如果延迟中位数超过5ms或出现1‰以上的限流率,优先检查各客户端的DEK缓存命中率。
缓存来由 随着互联网系统发展的逐步完善,提高系统的qps,目前的绝大部分系统都增加了缓存机 制从 而避免请求过多的直接与数据库操作从而造成系统瓶颈,极大的提升了用户体验和系统稳定性。...缓存问题(虽然使用缓存给系统带来了一定的质的提升,但同时也带来了一些需要注意的问题) 2.1 缓存穿透 缓存穿透是指查询一个一定不存在的数据,因为缓存中也无该数据的信息,则会直接去数据库层进行查询,...结构图如下所示: - LRU-K需要多维护一个队列或者更多,用于记录所有缓存数据被访问的历史。 只有当数据的访问次数达到K次的时候,才将数据放入缓存。...- 第一步添加数据照样放入第一个队列的头部 - 如果数据在该队列里访问没有达到K次(该数值根据具体系统qps来定)则会 继续到达链表底部直至淘汰;如果该数据在队列中时访问次数达到了K次,...,所以需要更多的内存空间来用来构建缓存,但优点也很明显, 较好的降低了数据的污染率提高了缓存的命中率,对于系统来说可以用一定的硬件成本来换取系统性能也不失为一种办法。
公式 命中率 = 缓存命中次数/请求总数 时延 = 命中率×缓存时延 (1-命中率)×(缓存时延 失效时延) QPS = 线程数/时延 一个例子 假设我们运行了一个单线程的数据服务,单请求的延迟为 100ms...,qps 为 10;做了缓存策略之后,命中缓存的情况下,单请求的延迟为 0.1ms,qps 为 10000。...我们用服务的平均 qps 来代表其性能,下表为性能和缓存命中率的关系: 缓存命中率 性能(QPS 0% 9.99 20% 12 50% 19 70% 33 90% 99 92% 123 95% 196...命中率为 80%,性能提升约 3~5 倍;命中率为 90%,性能提升约 5~10 倍; 缓存命中率与业务场景有关,局部性越强,缓存性能提升越大。...对于完全随机的业务,缓存策略提升不大,甚至拖累性能; 对于特定业务,如果缓存命中率达到 80%甚至 90%以上,优化缓存命中率可以得到巨大的性能提升; 对于特定业务,如果缓存命中率不到 70%,优化未命中缓存时的业务性能更靠谱
缓存来由 随着互联网系统发展的逐步完善,提高系统的qps,目前的绝大部分系统都增加了缓存机制从而避免请求过多的直接与数据库操作从而造成系统瓶颈,极大的提升了用户体验和系统稳定性。 2....2.1 缓存穿透 缓存穿透是指查询一个一定不存在的数据,因为缓存中也无该数据的信息,则会直接去数据库层进行查询,从系统层面来看像是穿透了缓存层直接达到db,从而称为缓存穿透,没有了缓存层的保护,这种查询一定不存在的数据对系统来说可能是一种危险...LRU-K需要多维护一个队列或者更多,用于记录所有缓存数据被访问的历史。只有当数据的访问次数达到K次的时候,才将数据放入缓存。当需要淘汰数据时,LRU-K会淘汰第K次访问时间距当前时间最大的数据。...第一步添加数据照样放入第一个队列的头部 如果数据在该队列里访问没有达到K次(该数值根据具体系统qps来定)则会继续到达链表底部直至淘汰;如果该数据在队列中时访问次数达到了K次,那么它会被加入到接下来的2...,所以需要更多的内存空间来用来构建缓存,但优点也很明显,较好的降低了数据的污染率提高了缓存的命中率,对于系统来说可以用一定的硬件成本来换取系统性能也不失为一种办法。
生产风险:语义缓存依靠向量相似度匹配,存在假阳性命中风险;语义相近但事实不同的查询,有可能返回过期错误答案;时效性、个性化业务必须配合 TTL、会话隔离,必要时关闭缓存。...,适用于自然语言(存在假阳性风险)成本控制支持请求次数(QPS/RPM)限流同时支持请求 RPM 与 Token 数量(TPM)配额、熔断适用场景微服务、传统 Web 应用AI Agent 调度、大模型网关...技术选型与灰度验证:优先在具备高频相似查询的 RAG 模块或客服 Agent 中做灰度测试,重点观测缓存命中率、假阳性率、TTFT 首包时延、429 错误占比,评估实际收益之后再全量上线。2....流式 SSE 场景:语义缓存对流式输出支持有限;未命中缓存才会透传给模型推理。6. 合规与隐私:配置语义缓存时应遵守数据隐私规则,对涉及个人身份信息(PII)的请求设置绕过缓存或脱敏处理。7....A:最适合存在大量重复性查询和高频交互的场景,例如多 Agent 协同的状态同步、高频智能客服问答,以及基于固定知识库的 RAG 长文本处理场景;强实时、高度发散的业务需要谨慎评估语义缓存收益。