Page 22 - 《软件学报》2021年第5期
P. 22
1246 Journal of Software 软件学报 Vol.32, No.5, May 2021
Fig.11 A service degradation occurred in a chaos experiment
图 11 一次混沌实验中发生的服务降级
Table 8 Collected performance data in chaos experiments
表 8 混沌实验过程中收集的性能数据
系统资源类型 性能指标 说明
qps(2xx) 每秒成功请求量(requests/s)
服务 qps(4xx) 每秒失败请求量(requests/s)
Latency 服务响应延时(s)
CPU usage CPU 使用率(%)
MEM usage 内存使用率(%)
FS reads bytes 每秒文件系统读入字节数(bytes/s)
容器
FS write bytes 每秒文件系统写入字节数(bytes/s)
Network input packets 每秒网络传入包数(pakcets/s)
Network output packets 每秒网络传输包数(pakcets/s)
CPU usage CPU 使用率(%)
MEM usage 内存使用率(%)
Disk reads bytes 每秒磁盘读入字节数(bytes/s)
节点
Disk write bytes 每秒磁盘写入字节数(bytes/s)
Network input packets 每秒网络传入包数(pakcets/s)
Network output packets 每秒网络传输包数(pakcets/s)
在性能指标的因果关系图构建过程中,需要保证每个时间戳下各性能指标均存在有效值,但是表 3 中各项
通过换算得到的服务性能指标并不能保证这一点(如在 qps(2xx)和 qps(4xx)均为 0 的情况下,相应的成功率是无
效值),因此在韧性风险的分析过程中,直接使用了实际收集的服务性能指标进行韧性风险分析,构建韧性风险
影响链路时的目标节点将使用与违反服务韧性目标的性能指标直接相关的服务性能指标(如订单服务的每秒
成功交易量与其每秒成功请求数直接相关).通过因果搜索算法得到各项性能指标之间的因果关系图如图 12 所
示(电子版文档中,可以放大该图查看细节).其中,蓝色节点为服务的性能指标,红色节点为容器的性能指标,绿色
节点为 kubernetes 集群的工作节点的性能指标.
图 13 为图 12 中所有服务每秒请求数量(qps)的因果关系图,在与图 9 的比较后可以看出:仅通过性能数据
所构建的因果关系图基本与 sock-shop 的系统架构图一致,并且能够反映出各微服务在业务场景上的先后关系
(如浏览商品(catalogue 服务)→添加购物车(carts 服务)→用户下单(orders 服务)).说明通过因果搜索算法生成的
因果关系图在实际物理关系上具有一定程度的准确性.
以图 12 的因果关系图为输入,计算图中所有因果关系边的权重,并以服务降级的性能指标(每秒成功交易
量)直接相关的服务性能指标(service/orders/qps(2xx))为终点,按照深度优先遍历的方式寻找所有直接或间接指
向该节点的性能指标.最终得到的影响服务降级的性能指标以及对应的因果关系边的权重如图 14 所示.