如何衡量一把锁的争用率
Posted
技术标签:
【中文标题】如何衡量一把锁的争用率【英文标题】:howto measure contention rate of one lock 【发布时间】:2012-03-07 09:20:54 【问题描述】:我目前在维护的部分应用程序(.net 4.0、c#)的争用率方面存在问题。 如果无法获得一个部分锁,我想做的是编写一个 PerfCounter 。现在我只有 .net 提供的整体计数器,但我想为某些选定的锁提供一个 PerfCounter。
Profiler 等对我来说不是一个选项,因为这是一个我无法触及的高性能生产环境,我可以记录 perfcounters。
【问题讨论】:
这行不通,你不能只是将性能计数器栓在锁上。你真的需要一个分析器,VS Ultimate 中的并发可视化器会做得很好。您需要先解决“无法触摸”的问题。使用假数据创建模拟运行时环境。 【参考方案1】:ETW 事件可能已经提供了有关您需要的信息。见ETW overview 和Lock contention。
【讨论】:
以上是关于如何衡量一把锁的争用率的主要内容,如果未能解决你的问题,请参考以下文章
Linux(内核剖析):28---内核同步之(临界区竞争条件同步锁常见的内核并发SMNP和UP配置选项锁的争用和扩展性(锁粒度))