性能文章>性能分析之软中断异常排查>

性能分析之软中断异常排查原创

2年前
370617

一、问题现象

小伙伴反映压测过程中,应用服务器资源有异常。对服务器的TOP打印结果如下图所示    

 性能测试知识库      

性能测试知识库

TOP图进行分析,可以拿到几组数据

 

1us的利用率大约在70%左右

2sy的利用率大约在10%左右

3si软中断的利用率大约在20%-30%之间,很高

48核的机器,load负载最高已经到了70,很高

5Wa0,内存使用率不高,说明资源没有太大的压力

 

二、问题判断

性能测试知识库

对几组数据进行综合分析,可以有一些基本判断

 

1、软中断高而硬中断不高,wa不高,说明不是网卡中断或磁盘的缺页中断导致

 

2sy利用率在10%左右,而软中断是在内核层面的操作。那么有下面几种可能

 

  •     代码频繁调用了某些内核函数,比如yield之类的,不停地切换cpu;

  •     内核频繁的在做日志读写;

  •     内核频繁的读取某些配置文件或者缓存文件失败导致死循环;

     

3、考虑到负载已经到了70,很明显是线程出现了阻塞。所以很有可能是线程在内核层面读取配置文件失败导致的异常现象

性能测试知识库

三、问题定位

 

Top -H -p pid获取子线程信息,拿到子线程之后再打印系统调用日志

strace -tt -T-v -f -e trace=file -o /tmp/strace.log -s 1024 -p {TID}

 

 

 

 

四、日志解读

 性能测试知识库

这是一个系统调用的日志,做如下解读

1、内核试图通过lstat函数读取/tmp/tomcat-docbase.8014904651672037141.8087/v2这个目录的信息,但是没找到,因此无法编译内存指令

2、内核反复通过resumed这个函数去恢复提交内存指令,然后让lstat读取,但是依然找不到内容

3Resumed是中断恢复指令,因为找不到对应的目录内容,无法编译内存指令集,内核于是陷入死循环,线程阻塞

检查tmp下面的目录,发现tomcat-docbase.8014904651672037141.8087下面是空的,没有V2这一层级,也有可能是无权限写入,需要开发配合检查一下、

点赞收藏
飞天小子

13软件测试,10年性能测试,5年性能培训,10万字性能博主,项目经理,微信uhz2008

请先登录,查看1条精彩评论吧
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步
7
1