对于某些情况,我正在分析Memcached的执行情况,并且我想在执行特定功能期间监视dTLB丢失。假设Memcached产生了多个线程,则每个线程都可能并行执行该函数。我发现的一个特定解决方案是Perf具有切换事件功能(使用perf探针监视特定功能期间的性能统计信息),应该让我通过在功能进入和退出时设置探针以及分别在每个探针上切换事件计数器的开/关来实现此目的。
我的问题是:
(a)据我了解,性能切换事件是Linux内核3.x分支的一部分。这是否已合并到Linux内核4.x的最新LTS版本中?如果没有,还有其他选择吗?
(b)此处介绍了我发现的另一个解决方法:监视流程执行子集的性能。但是我不太确定这是否可以解决当前的问题。我很担心,因为Memcached是多线程的,因此让每个线程产生一个新的子进程可能会导致过多的开销。
有什么建议么?