1、大规模云原生应用网络问题定位与排查实践网易资深云计算解决方案架构师服务分层应用层虚拟网络物理网络应用服务调用关系云计算服务多机房,多可用区服务压力测试测试资源管理场景管理任务管理版本管理性能测试平台机器管理成员管理测试脚本和数据管理脚本上传脚本下发测试执行和报告管理单接口压测脚本编写测试数据业务场景压测实时报告分析资源监控风险分析历史报告 采用梯度压力,看服务的性能变化情况,评估出服务的最大容量值容量测试 在达到停止条件之后,继续增加压力,检验服务集群在失效状态下的表现摸高压测 在峰值压力下,保持30分钟(可讨论)稳定峰值稳定性测试 针对秒杀类业务,制定秒杀测试场景秒杀场景测试 多级限流,保护
2、系统稳定提供服务限流演练 非核心业务降级,提升整体服务能力降级演练系统服务化平台内部服务调用统计 应用报错 错误日志搜集、告警 系统 QPS 上不去 系统处理效率变“慢”问题抛出 通过错误日志追查调用链路的源头集群 查看源头集群的错误告警信息 是否是处理变慢?!集群流量负载是否均衡 分析集群整体负载:CPU、内存使用量、网卡流量、存储 IOWhy?是否有近期变更,发布上线 查看日志告警信息,确定报错点 分析报错原因:Bug?死锁?缓存穿透业务降级?内存泄露,垃圾回收?调用超时?应用层初步定位90%问题都与变更有直接关系 业务调用出现超时报错 集群处理响应 RT 增加 集群上下游业务网络重传增加
3、 特别是缓存集群网络问题应用层表现为什么一定要解决网络问题!简单通过扩容解决,带来的是成本的增长集群扩容已经不再是简单线性增加吞吐量的有效办法压测周期时间短,业务变化快,风险高 Nginx 云主机软中断队列满,出现丢包超时 压测云主机客户端到 Nginx 建链慢 缓存集群调用 RT 高,集群重传高,商品、库存、交易出现调用缓存超时 相比缓存使用云外物理机,云内的缓存云主机集群表现差距较大 云主机 Steal 高 虚拟网卡丢包 压测出现的一些问题排查难度大压测消耗大服务集群分析常用工具 监控平台 云主机操作系统检查网络状态nstat 使用 perf 在宿主机上跟踪 KVMperf,火焰图 网络虚
4、拟化性能分析对比iperfsar 全链路抓包分析tcpdumpovs-tcpdump全链路抓包分析tcpdump 参数选择,减少 pcap 大小使用 VXLAN 内层包 IP 过滤使用-s 70(vm),-s 130(宿主机)程序分析找出 TCP 的数据包与 ACK 相差超过 10ms+的包人工检查根据抓包的时戳、TCP 序列号、TCP Timestamp、IP 的 ID 域分析比对GSO,GRO,不能一一对应服务集群分析策略云内业务调用computeVmVswitch(flow)VXLANVmVmcomputecomputeTORTORCSWCSWTORTORcompute 云内服务调用不出
5、 VPC 流量线路可以在同一台计算节点内、流量绕 TOR 到另一台计算节点、绕 CSW 到另一组TOR 下 机房服务器放置的规划,一般有存储区、网关区、计算区、公共服务区云内服务集群流量分析computeVmVswitch(flow)VXLANVmVmTORTORCSWCSW应用层限流虚拟网卡丢包连接队列溢出网卡流量超过 QOSDPDK PMD CPU 占用率过高安全组配置网卡流量超过 QOS流表配置GuestOS虚拟交换物理网络网段路由配置网卡 bond 状态接入交换机VPC核心监控协议调用频率过高影响交换机转发性能网卡流量过载线路故障,CRC 校验异常基础监控云内服务监控机房物理网络监控
6、早期交换机监控通过 SNMP 协议,交换机监控粒度维持在分钟级 新一代基于 gRPC 协议的监控协议,由交换机主动 push 监控数据到监控平台,可支持秒级 物理网络层面带宽流量的监控,由于粒度在分钟级,所以压测峰值流量很可能无法发现物理网络瓶颈 新的支持秒级监控的机器需要有厂商定制,改造成本和采购成本很高交换机监控现状 交换机上联口到核心带宽假如打满,可能导致丢包 物理交换机 CPU 比较弱,监控无法做到秒级,因此没有发现问题 物理层面容量规划,打散高转发流量的物理机器(N