Page 24 - 《软件学报》2021年第5期
P. 24
1248 Journal of Software 软件学报 Vol.32, No.5, May 2021
将图 14 中的因果链路根据因果关系边的权重进行排序,最终输出的韧性风险影响链路如图 15 所示.图 15
中标注为红色的性能指标(container/carts/CPU Usage)被混沌实验中引入的环境扰动直接产生影响的性能指标,
可以看出,优先输出的韧性风险影响链路均命中了引入的系统环境扰动.
1. container/carts-db/FS Reads Bytes→container/carts/CPU Usage→service/carts/qps(2xx)→service/carts/latency→
service/front-end/latency→service/front-end/qps(2xx)→service/front-end/qps(4xx/5xx)→service/orders/latency→
service/catalogue/qps(2xx)→service/orders/qps(2xx)→container/orders/CPU Usage→container/orders/Network Output Packets→
container/orders/Network Input Bytes→container/orders-db/Network Input Packets→container/orders/Network Output Bytes→
container/orders/Network Input Packets→container/orders/MEM Usage→service/orders/qps(2xx)
2. container/carts-db/FS Reads Bytes→container/carts/FS Reads Bytes→container/carts/CPU Usage→service/carts/qps(2xx)→
service/carts/latency→service/front-end/latency→service/front-end/qps(2xx)→service/front-end/qps(4xx/5xx)→
service/orders/latency→service/catalogue/qps(2xx)→service/orders/qps(2xx)→container/orders/CPU Usage→
container/orders/Network Output Packets→container/orders/Network Input Bytes→container/orders-db/Network Input Packets→
container/orders/Network Output Bytes→container/orders/Network Input Packets→
container/orders/MEM Usage→service/orders/qps(2xx)
…
Fig.15 Resilience risk influence chain
图 15 韧性风险影响链路
通过观察图 15 韧性风险影响链路中各性能指标的变化,发现对 cart 容器进行 CPU 加压(container/cart/cpu)
提高了 cart 服务的延时(service/cart/latency),并减少了其他服务的请求量(service/服务/qps(200)),因此减少了
order 容器的网络请求传入量(container/orders/Network Input Packets)以及 order 容器内存中缓存的订单数量
(container/orders/MEM Usage),最终影响交易成功的订单数量(service/orders/qps(2xx)).图 16 展示了上述性能指
标在引入扰动时的具体性能曲线.从上述分析中可以看出,案例研究中得到的因果关系链路一定程度上体现了
从扰动到服务降级的传播过程.
Fig.16 Performance curves of different performance indicators when a disruption was injected
图 16 引入系统环境扰动时各性能指标的性能曲线
5 进一步分析与总结
5.1 实验结果的进一步分析
为了进一步验证本文提出的韧性风险的分析方法是否能够有效地分析出目标系统在发生韧性风险时因果
的影响链路,本文分析了案例研究中的多次混沌实验中收集到的系统性能数据,以评估韧性风险影响链路的准