利用访问日志在ASM中定位异常延迟问题

简介: 阿里云服务网格ASM会在工作负载中注入Sidecar以实现对流量劫持,并按照用户的配置对流量进行修改、路由。因此,Sidecar处理和转发带来的额外时间开销会导致请求的延迟有一定的增长。除延迟方面的影响外,在节点性能充足的情况下,Sidecar通常不会对并发能力有显著的影响。本文将介绍利用访问日志在服务网格ASM中排查耗时异常的通用方法和思路。 一、在请求路径上确定耗时异常的组件查看访问日志中

阿里云服务网格ASM会在工作负载中注入Sidecar以实现对流量劫持,并按照用户的配置对流量进行修改、路由。因此,Sidecar处理和转发带来的额外时间开销会导致请求的延迟有一定的增长。除延迟方面的影响外,在节点性能充足的情况下,Sidecar通常不会对并发能力有显著的影响。本文将介绍利用访问日志在服务网格ASM中排查耗时异常的通用方法和思路。 

一、在请求路径上确定耗时异常的组件 查看访问日志中的duration字段确定该请求在该数据平面组件消耗的总时间(包括读取并转发请求至上游、等待上游响应,以及读取并转发上游响应至下游),如果该时间异常,则应当继续向上游方向排查调用路径上的下一个组件,如果调用路径上下一个组件的延迟正常,则可以确定耗时异常发生在当前组件上;反之则应当继续向上游排查,直至确定耗时异常的最上游组件。

二、确定耗时原因

网络传输耗时 通过观察访问日志,如果request_duration耗时长,说明当前数据面组件(Sidecar/网关)从下游读取请求消耗了较长时间;如果request_tx_duration耗时长则说明发送至上游消耗了较长时间。对于携带了Body的HTTP请求,由于Body是边读取边发送给上游(而不是读取完才发送),所以request_duration长会进一步导致request_tx_duration变长,而如果只有request_tx_duration长的情况,则说明读取请求较快,但发送给上游的速度较慢。如果response_tx_duration耗时长,则说明从上游读取response或是将response转发给下游的速度比较缓慢。

上游处理耗时 访问日志的response_duration字段可以表达从请求发生直到收到上游响应的首个字节所消耗的时间,response_duration减去request_tx_duration可以反映上游处理所消耗的时间,如果这个时间长,则说明上游处理缓慢或是上游连接网络延迟较高。

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
4月前
|
存储 监控 算法
防止员工泄密软件中文件访问日志管理的 Go 语言 B + 树算法
B+树凭借高效范围查询与稳定插入删除性能,为防止员工泄密软件提供高响应、可追溯的日志管理方案,显著提升海量文件操作日志的存储与检索效率。
156 2
|
5月前
|
JSON 缓存 测试技术
程序出错瞎找?教你写“会说话”的错误日志,秒定位原因
错误日志是排查问题的“导航地图”。本文详解错误三大来源:参数非法、交互故障、逻辑疏漏,并分享写好日志的6大原则——完整、具体、直接、集成经验、格式统一、突出关键字,助你快速定位问题,提升系统可维护性。
429 0
|
8月前
|
运维 监控 安全
Syslog 日志分析与异常检测技巧
系统日志蕴含设备运行关键信息,但分析提取颇具挑战。本文详解从命令行工具(如 Grep、Tail、Awk)到专业软件(如 EventLog Analyzer)的全流程日志分析技巧,助你高效挖掘 Syslog 价值,提升运维与安全响应能力。
498 4
|
11月前
|
数据库连接 测试技术 Windows
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
|
11月前
|
SQL druid Oracle
【YashanDB知识库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIER start异常
客户Java日志中出现异常,影响Druid的merge SQL功能(将SQL字面量替换为绑定变量以统计性能),但不影响正常业务流程。原因是Druid在merge SQL时传入null作为dbType,导致无法解析递归查询中的`start`关键字。
|
11月前
|
域名解析 应用服务中间件 网络安全
阿里云个人博客外网访问中断应急指南:从安全组到日志的七步排查法
1. 检查安全组配置:确认阿里云安全组已开放HTTP/HTTPS端口,添加规则允许目标端口(如80/443),授权对象设为`0.0.0.0/0`。 2. 本地防火墙设置:确保服务器防火墙未阻止外部流量,Windows启用入站规则,Linux检查iptables或临时关闭防火墙测试。 3. 验证Web服务状态:检查Apache/Nginx/IIS是否运行并监听所有IP,使用命令行工具确认监听状态。 4. 测试网络连通性:使用外部工具和内网工具测试服务器端口是否开放,排除本地可访问但外网不可的问题。 5. 排查DNS解析:确认域名A记录指向正确公网IP,使用`ping/nslookup`验证解析正
428 2
|
测试技术 开发工具 git
写了BUG还想跑——闲鱼异常日志问题自动追踪-定位-分发机制
为了高效地发现、定位和解决预发问题,闲鱼团队研发了一套异常日志问题自动追踪-定位-分发机制。这套机制通过自动化手段,实现了异常日志的定时扫描、精准定位和自动分发,显著降低了开发和测试的成本,提高了问题解决的效率。
606 15
写了BUG还想跑——闲鱼异常日志问题自动追踪-定位-分发机制
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
1243 3
|
人工智能 Oracle Java
解决 Java 打印日志吞异常堆栈的问题
前几天有同学找我查一个空指针问题,Java 打印日志时,异常堆栈信息被吞了,导致定位不到出问题的地方。
373 2
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。