Linux bcc tools memleak用于userspacel范围内存泄漏检测

Linux bcc tools memleak用于userspacel范围内存泄漏检测,linux,profiling,bpf,bcc-bpf,Linux,Profiling,Bpf,Bcc Bpf,是否有人使用bcc的memleak工具来分析用户空间内存分配?我一直在尝试调整它来实现这一点,但它似乎非常不可靠,即第一批未完成的分配在使用虚拟C应用程序进行测试时似乎很好,但通常在接下来的几批中,由于某种原因,条目会人为地消失/增加。我的猜测是,哈希表溢出是因为用户空间中分配的频率很高?是否有人能够使用ebpf(或其他相关工具)在mem用户空间范围内进行评测?您是否有机会发布虚拟应用程序的源代码?或者,您可以尝试运行tools/cobjnew.sh 1来计算每秒的分配数吗?当然@pchaign

是否有人使用bcc的memleak工具来分析用户空间内存分配?我一直在尝试调整它来实现这一点,但它似乎非常不可靠,即第一批未完成的分配在使用虚拟C应用程序进行测试时似乎很好,但通常在接下来的几批中,由于某种原因,条目会人为地消失/增加。我的猜测是,哈希表溢出是因为用户空间中分配的频率很高?是否有人能够使用ebpf(或其他相关工具)在mem用户空间范围内进行评测?

您是否有机会发布虚拟应用程序的源代码?或者,您可以尝试运行
tools/cobjnew.sh 1
来计算每秒的分配数吗?当然@pchaigno:。这是一个萨沙·戈尔施泰因·门利克的修改版,适合我的需要。我已经去掉了相当多的开销(去掉了组合堆栈位,因为它有自己的哈希表和其他小东西,比如ebpf_printk),现在我看到间隔大于10-20秒时,一切都按预期工作,它注册高频alloc。在python程序想要打印东西的时候,C代码还没有机会完成,这是不是间隔较短的情况?@pchaigno哦,虚拟应用程序,误读对不起:所以memleak的普通版本适用于你的虚拟应用程序?根据我测试的,当使用我的虚拟应用程序的pid运行时,适用于所有批次(无数据丢失,无数据错误)。这就是为什么我认为当运行memleak用户空间时,内核中会发生一些不好的事情(高频alloc会搞糟一些事情)。