
测量延迟应分层次进行:网络层使用ICMP/UDP/TCP探测测得的单向/往返时延(RTT),应用层使用HTTP/HTTPS请求测得的端到端响应时间。常用方法包括:ping/nping测RTT、mtr/traceroute判断路径波动、iperf3测带宽与抖动、curl或wrk做HTTP端到端延迟。为获得可信数据,需在不同时间窗口(高峰/非高峰)和不同地理来源点多次采样,并用中位数和95百分位(P95)来代表典型与尾部延迟。
注意将测量点放在真实业务链路上:如果是站群(多台服务器),每台节点都要分别测量,并将结果汇总为P50/P95/P99延迟分布,以避免单点数据掩盖群体问题。
实时监控应覆盖网络、系统和应用三大类指标。网络层:RTT、丢包率、带宽利用率、MSS/MTU异常;系统层:CPU/CPU steal、内存使用、IOPS/磁盘队列长度、上下行吞吐;应用层:请求速率(RPS)、平均响应时延(Avg)、P95/P99、错误率(5xx/4xx)、连接耗尽数。对站群而言,还需监控负载均衡器状态、会话粘滞与节点健康检查通过率。
用时间序列展示关键指标并叠加事件(部署/网络变更),同时设置热图或分层仪表查看不同节点表现差异,便于快速定位异常节点。
常见组合包括:Prometheus+Grafana用于指标采集与可视化,Node Exporter与cAdvisor采集主机与容器指标;使用Blackbox Exporter或Synthetic监测做主动HTTP/ICMP探测;ELK/Opensearch用于日志聚合与查询;Datadog/Zabbix/Nagios等可提供更完整告警链。对于网络层,iperf3、mtr、tcptraceroute、pingplotter可做精准诊断;若需真实用户体验(RUM),可集成浏览器端监控收集端到端时延。
监控系统应在多个地区(包括新加坡本地和主流访问地)有采集节点,探测频率要和业务特点匹配(例如高频短任务可1s级采样,普通API可10-30s)。日志与指标应保留足够历史以分析趋势。
定位流程建议按层次排查:首先看网络指标(丢包/RTT突增),若异常则追踪路由/链路或上游ISP问题;若网络正常,查看主机CPU、IOPS、磁盘队列与内存交换情况,判断是否为资源耗尽或IO阻塞;接着观察应用层的慢请求堆栈与数据库响应(慢查询、连接池耗尽)。结合请求追踪(如Jaeger/Zipkin)可以快速定位哪一段调用链导致尾延迟上升。
在排查过程中同时对比历史基线与P95/P99变化,优先关注尾延迟与错误率的共同上升;使用熔断/降级策略临时保护核心服务以避免雪崩式故障。
告警策略应以业务影响为中心,设置分级阈值(警告/重大)并基于P95/P99而非均值:例如P95延迟超过阈值或错误率突增即触发告警。结合短时和长时窗口(如1min与5min)以避免误报。自动化响应可包括重启实例、切换流量(LB权重下调)、扩容(自动扩缩容)和禁用可疑节点。所有自动动作需走审计与回滚路径,并在执行前后记录指标以评估效果。