在执行特定功能期间监视性能计数器

问题描述 投票:5回答:1

对于某些上下文,我正在分析Memcached的执行情况,我想在执行特定函数期间监视dTLB未命中。假设Memcached产生多个线程,每个线程可能会并行执行该函数。我发现的一个特殊解决方案,Perf功能切换事件(Using perf probe to monitor performance stats during a particular function),应该让我通过在函数入口和退出上设置探针并分别在每个探针上打开/关闭事件计数器来实现这一点。

我的问题是:

(a)根据我的理解,perf toggle事件被包含在Linux内核3.x的分支中。这是否已被纳入Linux内核4.x的最新LTS版本中?如果没有,还有其他选择吗?

(b)我发现的另一种解决方法在这里描述:performance monitoring for subset of process execution。但是我不太确定这是否可以正常解决手头的问题。我担心因为Memcached是多线程的,每个线程产生一个新的子进程可能会导致太多的开销。

有什么建议?

c linux memcached perf
1个回答
1
投票

我只能在/perf/core_toggle repo中找到切换事件功能的实现,该功能由该功能的开发人员维护。您可以编译该代码并自行使用该功能。你可以找到如何使用它的例子here。但是,对于任何版本的内核,我认为它还没有在主Linux版本中被接受。

如果要测量一个或多个事件的数量,那么有一些易于使用的替代方案,但需要在代码库中添加几行代码。您可以通过编程方式使用perf interface或其他提供此类API的第三方工具,例如PAPILIKWID

© www.soinside.com 2019 - 2024. All rights reserved.