一个网页请求的执行链路:
浏览器 <--> ... <--> DNS服务器
浏览器 <--> ... <--> Web服务器 <--> ...
这就涉及到各个链路和环境。每个地方都有可能成为瓶颈,每个环节都可以进行调优。
维度:
响应时间 资源占用 系统可用: 稳定性、错误率。 可管控:
示例:
瓶颈点、28原则
分而治之:
一般手段:
浏览器缓存 DNS缓存 CDN内容分发、搭配DNS查找就近节点: 网络拥堵? 网络延迟与带宽 Web服务器优化 静态内容、动态内容 Nginx + 集群 缓存: 本地缓存 + 分布式缓存 MySQL+数据库: 配置 + 查询优化 + 规划 批/流处理 基础服务: 磁盘、IO 高并发 线程池 物理隔离: 坏邻居 系统拆分 性能测试+持续集成 前端优化 交互优化 架构+系统拆分 监控: 链路、性能指标、业务指标、预警、日志监控。
资源占用
案例:
。。。。。。