CVM抖动问题分析思路

抖动是一个极其复杂的问题,它涉及到的原因非常多,本文试图理一下排查的思路,可能并不能涵盖所有内容。

1.对于虚拟机来说,引起抖动的问题可能发生在虚拟机内部或者发生在宿主机上,那么第一步就是要先找出这个问题机器。
比如网络抖动,那么直接就分别在宿主机和虚拟机中进行抓包来找出问题机器,定位到问题机之后再进一步查看。

2.针对抖动问题,首先就是要抓到现场的数据,抖动一般都是比较短暂时间出发的行为,因此需要比较细粒度的trace方法
常用的有atop、perf record等等

3.引起抖动问题的因素有多种,需要一一进行排除,首先就是调度延迟
查看是否是由于调度延迟高引起的,进程响应延迟,从而引发了抖动问题,这可以通过perf sched功能进行抓取调度延迟进行分析
在本例中,我们是遇到了一个抖动问题,怀疑是syscpu使用率高导致的抖动的问题,并且通过ps或者pidstat查看到系统中的sys分布比较均衡,那么此时就需要考虑是否是调度导致的,使用如下方法来确认
(1) 可以使用perf查看调度延迟

perf sched record -- sleep 10

(2)使用perf生成火焰图查看热点,主要是记录cpu clock在各个函数上的热点


sudo perf record -F 99 -a -g -- sleep 10
sudo perf script > out.perf
./stackcollapse-perf.pl out.perf > out.folded
./flamegraph.pl out.folded > perf.svg

4.查看是否是系统调用耗时引起的,针对抖动业务的进程,找到pid,跟踪它的系统调用耗时

strace -c -p pid
perf trace -p pid -s --duration 200

5.如果问题出现在虚拟机中,需要注意的是根本原因却不能排除和宿主机无关,因为虚拟机的运行是依赖于KVM对资源的调度的,因此虚拟机上的卡顿也可能是虚拟化引入的。
典型的一个例子,宿主机上创建了多个虚拟机,没有做好资源隔离,导致虚拟机之间的相互竞争,从而引入了抖动问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值