第11章学习笔记:性能观测与系统化诊断
课程笔记从指标、跟踪、剖析与排队模型定位瓶颈,而不是凭感觉调参数。
关联:章节 第11章 性能观测与系统化诊断
第11章笔记:性能观测与系统化诊断
本章问题
从指标、跟踪、剖析与排队模型定位瓶颈,而不是凭感觉调参数。 本章不是七个术语的并列清单,而是一条从可观察现象到内部状态、从内部状态到工程证据的因果链。学习时始终标出对象身份、队列或表项、触发事件、权限边界和不可破坏的不变量。
七节机制连接
- 先定义问题再采指标:性能问题要写工作负载、时间窗、基线、受影响用户和成功阈值,再选择指标;实验入口为针对接口P99从80ms升到900ms,先固定请求类型、发布版本和峰值窗口;反查边界是平均延迟正常不能反驳尾延迟故障;不同时间窗和分母不可直接比较。
- CPU时间、利用率与饱和:user、system、iowait、steal描述不同现象;运行队列和调度延迟揭示饱和;实验入口为比较100% CPU的计算任务与自旋锁任务,用采样剖析区分有效工作和争用;反查边界是CPU利用率低仍可能被单线程、锁或外部等待限制;iowait也不是磁盘故障证明。
- 内存、缺页与缓存观测:RSS、虚拟空间、页缓存、minor/major fault和回收压力需结合访问模式解释;实验入口为逐步增加工作集,观察minor fault、major fault、换页和P99延迟的拐点;反查边界是free内存少常因缓存利用,并不自动等于泄漏;泄漏要看不可回收增长与引用。
- I/O、网络与队列:吞吐、IOPS、队列深度、服务时间和等待时间共同描述设备;网络还需重传与拥塞窗口;实验入口为对数据库写入峰值同时画块层延迟、队列深度、fsync和应用请求时间线;反查边界是高队列可能是原因也可能是结果;相关性必须用事件顺序和干预验证。
- Little定律与排队直觉:稳定系统中平均在途数N等于吞吐X乘平均响应R,单位一致时可反查并发、容量和延迟;实验入口为每秒200请求、平均响应0.15秒时估算平均在途30个,再与连接池大小比较;反查边界是Little定律不告诉你延迟分布与瓶颈位置;非稳定窗口直接套用会误导。
- 实验:分位数与直方图:分位数需对排序样本采用明确索引规则,直方图桶保留分布而非只报平均;实验入口为输入延迟样本,输出p50、p95、p99和超过SLO阈值的比例;反查边界是不同分位数算法在小样本有差异,必须固定定义;聚合分位数通常不能直接平均。
- 实验:USE诊断树:对每类资源依次检查Utilization、Saturation和Errors,并用下一观测缩小假设;实验入口为输入CPU、内存、磁盘、网络指标,输出首个证据最强的诊断分支与下一步观测;反查边界是诊断树给调查顺序而非自动根因;每一步都要保留替代假设。
请给七节画依赖箭头:前一节留下的状态或接口怎样成为下一节输入?每条箭头补单位、事件或保护条件。若任何一节可以随意搬走且不影响上下文,说明你还没有建立章内联系。
章内实验
选择本章至少一个代码实验,从空环境运行全部内联测试,再新增一个资源耗尽、非法迁移、同刻事件或崩溃输入。保存输入、输出、参考模型、首个偏差和修复后的回归证据。不可复现的睡眠竞态或人工截图不算实验结果。
错题闭环
把错误编码为对象混淆、状态跳步、单位错误、队列顺序、竞态遗漏、权限越界或恢复假设。不要只写粗心。一周后更换数字和事件顺序重做阶段卷;能在新输入下重建机制而非记住答案,才算迁移成功。