shr*_*s42 5 c linux memcached perf
对于某些情况,我正在分析Memcached的执行情况,并且我想在执行特定功能期间监视dTLB丢失。假设Memcached产生了多个线程,则每个线程都可能并行执行该函数。我发现的一个特定解决方案是Perf具有切换事件功能(使用perf探针监视特定功能期间的性能统计信息),应该让我通过在功能进入和退出时设置探针以及分别在每个探针上切换事件计数器的开/关来实现此目的。
我的问题是:
(a)据我了解,性能切换事件是Linux内核3.x分支的一部分。这是否已合并到Linux内核4.x的最新LTS版本中?如果没有,还有其他选择吗?
(b)此处介绍了我发现的另一个解决方法:监视流程执行子集的性能。但是我不太确定这是否可以解决当前的问题。我很担心,因为Memcached是多线程的,因此让每个线程产生一个新的子进程可能会导致过多的开销。
有什么建议么?
我只能在/perf/core_toggle存储库中找到切换事件功能的实现,该功能由该功能的开发人员维护。您也许可以编译该代码并自己使用该功能。您可以在此处找到有关如何使用它的示例。然而,我认为它还没有被任何版本的内核的主要 Linux 存储库所接受。
如果您想测量一个或多个事件的数量,那么有一些易于使用的替代方案,但需要在代码库中添加几行代码。您可以以编程方式使用perf 接口或提供此类 API 的其他第三方工具,例如PAPI和LIKWID。
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |