性能优化

浏览该分类下的所有文章

Redis明明很慢,为什么SLOWLOG一条都没有?

接口里一次 Redis 调用耗时两百毫秒,慢日志却没有任何记录,问题一定出在网络吗?并不一定。本文从 SLOWLOG 的计时边界出发,拆解客户端排队、服务端等待、命令执行、响应传输与结果处理之间的差异,结合 Redis CLI、延迟事件、连接缓冲区和 Lettuce 指标,建立可操作的排查路径,并通过隔离实验说明“请求慢但命令不慢”的原因,最后给出针对性优化与验证方法,避免盲目扩大连接池、延长超时或关闭持久化。

用k6找出被负载模型掩盖的慢请求

为什么压测时延迟很低,上线后却频繁超时?问题可能不在服务器,而在负载模型。本文从固定并发与固定到达速率的区别切入,解释协调遗漏如何低估慢请求影响,并结合k6开放负载模型,给出包含业务校验、超时控制、延迟阈值和迭代完整性检查的实战脚本。进一步分析虚拟用户预算、丢弃迭代、发压机瓶颈及延迟统计边界,说明如何联合判断请求是否按计划发出、业务是否正确完成、响应是否满足时限,建立可信的容量验证与性能回归流程。

SSE与Nginx流式传输排障实战

AI 接口启用了流式输出,页面却仍要等待数秒才整段显示,问题未必出在模型。本文沿着应用写出、Nginx 转发、SSE 解析与前端消费四个环节展开排查,用可运行的 Java 探针及本地对照实验,说明响应缓冲开关为何不能代替证据。随后解析请求缓冲、心跳与超时、首字节与首个有效事件之间的差异,并补充断线重连、任务幂等和资源清理的设计边界,帮助开发者建立从复现、定位到修复验证的完整方法,避免盲目增加超时或全局关闭缓冲。

用Linux DAMON看懂冷热页与主动回收

传统内存监控能告诉我们进程占用了多少内存、系统是否出现压力,却很难回答哪些页面正在频繁使用、哪些页面长期闲置。Linux DAMON 通过区域化采样、动态合并与拆分,在可控开销下持续刻画内存访问频率和冷热变化;DAMOS 进一步把观测结果转化为统计、回收、LRU 优先级调整和内存迁移策略。本文从原理、工具对比、实战命令到生产灰度方案,讲清如何用 DAMON 定位无效常驻内存,并降低直接回收、kswapd 抖动和延迟尖峰风险。

MySQL锁等待与连接池排队排查实战

接口变慢,并不一定是SQL执行慢。连接池排队、连接持有时间过长、行锁竞争和未结束的事务,都可能让系统在CPU不高时出现明显卡顿。本文以Java、HikariCP和MySQL为例,通过可复现实验拆分连接获取、数据库访问和连接占用时间,并结合sys视图定位阻塞者与长事务。同时分析连接池扩容、超时配置和事务拆分的适用边界,建立从应用监控到数据库诊断的排查路径,帮助开发者避免盲目加索引、加连接或重启服务。