小研究 - 一种复杂微服务系统异常行为分析与定位算法(二)

针对极端学生化偏差(Extreme Studentized Deviate,ESD)算法只能对单变量数据进行异常检测,难以对多变量数据进行异常行为度量,提出一种复杂微服务系统异常行为分析与定位(Multivariate Seasonal Hybrid ESD,M.S-H-ESD)算法。首先,对云平台的微服务运维日志数据进行提取,将多元日志数据进行加权归一得到一元数据。然后,对此一元数据采用多元周期混合ESD(Seasonal Hybrid ESD,S-H-ESD)算法对每个服务的异常度进行度量,进而获得异常度最高的服务,根据置信度和异常上限的设置,定位微服务系统异常的根因服务。实验结果表明,M.S-H-ESD算法对时间序列多维数据的异常行为检测具有较高的精确度、召回率和F1值,能够准确定位微服

务系统中的异常服务。

目录

[2 实验结果与分析](#2 实验结果与分析)

[2.1 仿真环境和数据选取](#2.1 仿真环境和数据选取)

[2.2 异常检测结果评估](#2.2 异常检测结果评估)

[2.3 微服务异常行为分析和定位](#2.3 微服务异常行为分析和定位)

[2.3.1 数据说明](#2.3.1 数据说明)

[2.3.2 微服务根因异常定位仿真结果](#2.3.2 微服务根因异常定位仿真结果)


2 实验结果与分析

2.1 仿真环境和数据选取

仿真实验采用的环境为64核Intel Xeon plati -num 8260 MCPU、 40 G 内 存、 Python3.7 、 Ubun -tu18.04 、 Cuda 10.2和Pytorch 1.6.0 。为了验证 M.S - H - ESD 方法的有效性,选取上证指数周期性明显的某股票 2019 --- 2022 年的股票交易数据作为实验数据,并对异常数据进行标记。

2.2 异常检测结果评估

在模 拟 实 验 中,分 别 采 用 K - means 、 PCA -Q统计方法和M.S - H - ESD 方法对异常进行检测,并对检测结果的准确性、召回率和 F1 等指标进行评估对比,结果如图 2 所示。

从实验结果可以看出, M.S - H - ESD 方法对于多变量周期数据的异常检测结果优于其他异常检测算法,并在召回率和 F 1 评估上有较大优势,分别高出30%和16% 。这是因为,对于时间序列数据,M.S - H - ESD算法考虑了初始阶段的周期和趋势,在提取特征时,首先去除了周期和趋势,凸显了数据特征。

2.3 微服务异常行为分析和定位
2.3.1 数据说明

在复杂微服务系统中,涉及到不同时间序列的服务日志数据,每一个系统的日志数据都需要分别提 取。提 取 日 志 数 据 并 将 其 构 造 为 多 元 数据,主要包括 OSB ( Oracle Service Bus )、 CSF ( Com -mon Service Framework )和 JDBC ( Java DatabaseConnectivity )等调用类型、开始时刻、持续时间、调用服务、被调服务以及 CPU 占用率、内存占用率和页面缓存等关键性能指标(KeyPerformance In -dicator , KPI )。 部 分 数 据 的 格 式 和 内 容如 表 1所示。

2.3.2 微服务根因异常定位仿真结果

微服务调用的数据不能直接用于根服务异常定位。复杂微服务系统的调用结构如图 3 所示。基于调用服务和被调服务分组数据,使用 M.S - H -ESD 算法获得每个组服务异常得分值,为分组服务对异常调用得分进行排序,选择前5%作为微服务根因异常的选择对象。

利用 M.S - H - ESD算法对多元数据处理后,根因异常服务在不同参数的评分结果如表 2 所示。 α和 u 值越小,需要定位的根因异常服务就越少,反之亦然。因此,根据情况,可以更准确地将较小的参数分配给问题服务。调整异常的置信度 α 和异常得分的上限 u ,会得到不同服务下异常得分的值。不同配置参数下根本原因异常得分的折线图如图4所示。从图4中可以看出,异常的置信度 α 和异常得分的上限 u 并没有改变异常根因服务评估 结 果的趋势。

表2反映了异常根因服务得分和定位结果,其中异常得分的上限 u 越高,得到的异常根因服务越紧致,反之,得到的异常根因服务越松弛。按照得分结果进行排序,最有可能发生异常的根因服务就在其中,排序愈靠前,发生异常的可能性越大。通过对服务异常的评分排序,可以得到复杂微服务系统的根因异常分析结果,如表3所示。

相关推荐
掘金-我是哪吒几秒前
微服务mysql,redis,elasticsearch, kibana,cassandra,mongodb, kafka
redis·mysql·mongodb·elasticsearch·微服务
€☞扫地僧☜€1 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
茶馆大橘1 小时前
微服务系列六:分布式事务与seata
分布式·docker·微服务·nacos·seata·springcloud
其乐无涯1 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流1 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
写bug的小屁孩1 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
斑布斑布1 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
紅色彼岸花1 小时前
第六章:DNS域名解析服务器
运维·服务器
✿ ༺ ོIT技术༻1 小时前
Linux:认识文件系统
linux·运维·服务器
58沈剑2 小时前
80后聊架构:架构设计中两个重要指标,延时与吞吐量(Latency vs Throughput) | 架构师之路...
架构