Linux: perf: debug问题一例,cpu使用率上升大约2%;多线程如何细化cpu及perf数据分析

文章目录

  • 前提
  • 面临的问题
  • 内核级别函数的差别
  • 继续debug
  • 总结
  • 根据pid

前提

一个进程安置在一个CPU上,新功能上线之后,固定量的业务打起来,占用的CPU是42%。之前没有新功能的情况下,CPU占用是40%。差了大约2%。而且这个进程里的线程数非常多,有50多个线程。从差距看变化不大,没有别的办法,只能使用perf来抓取数据来看。但是使用perf也要面临很多的问题。

面临的问题

面临的问题有一堆:

  1. 两次perf数据比较(根据方法:https://mzhan017.blog.csdn.net/article/details/148759386)发现,有差别的函数很多;需要一个一个看?有没有什么别的方法来做?
  2. 有些内核级函数的差别也很大,怎么关联到应用的逻辑改变?
  3. 怎么将CPU的使用率细化到线程级别?
  4. 如果可以细化到线程级别,然后可以使用perf做细化的数据抓取?
  5. 这样分析起来是不是更简单

内核级别函数的差别

我们先看一下内核函数/系统函数的差别。下面数据解释,第一列是之前的数据,第二列是新加功能只会的数据,第三列是差值。
有如下的发现:

    你可能感兴趣的:(kernel,系统性能,linux,服务器,网络)