A-Ops数据库场景在线应用性能诊断案例

描述

 

数据库场景下,由于操作系统某些进程操作(比如磁盘、网络等)占用I/O带宽过高,造成应用因为I/O带宽不足产生性能劣化的问题,如何快速、准确地诊断应用性能问题,并对问题进行定界定位是运维人员的重要挑战。

案例一

GaussDB应用磁盘IO类故障在线诊断

该案例通过对Gaussdb应用注入磁盘IO故障来模拟。

1

故障注入前

应用实时拓扑关系如下图所示,gaussdb应用包含1个master(进程id:1548)和1个slaver(进程id:1739),运行在虚拟机vm02上,gaussdb master有5个客户端TCP连接。

数据库

此时,gaussdb的应用性能如下图所示,平均600 TPS。

数据库

2

注入故障

在gaussdb的数据目录注入磁盘读写故障,命令如下:blade create disk burn --read --write --path /data --timeout 120

数据库

3

应用性能诊断

此时应用性能出现劣化,从大概600 TPS → 60 TPS,下降了近10倍,如下图所示:

数据库

故障发现与定位结果如下图所示,可以看出已产生应用性能劣化事件,原因是磁盘读写响应异常。

数据库

具体的故障传播关系如下图所示,可见应用性能劣化是因为磁盘写响应异常以及block层request时延异常,进一步的磁盘类异常是由于故障注入工具chaos(进程id:3941335)导致。

数据库

案例二

Redis应用网络时延类故障在线诊断

1

注入故障

通过故障注入工具ChaosBlade注入2分钟网络时延故障,具体命令:blade create network delay --time 50 --offset 50 --interface ens1 --local-port 3742 --timeout 120

数据库

故障注入期间redis sli指标出现明显劣化,大概从10ms → 80ms

2

应用性能诊断

故障发现与定位结果如下图所示,可以看出已产生应用性能劣化事件,原因是网络时延异常。

数据库

 

数据库

具体的故障传播关系如下图所示,可见应用性能劣化是因为网络时延异常导致。

数据库

审核编辑 :李倩

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分