linux – 导致主要页面错误的日志内存访问

linux – 导致主要页面错误的日志内存访问,第1张

概述有谁知道如何获取导致页面错误内存访问(指针)?我主要对主要的页面错误感兴趣. 关于我正在努力实现的目标的一些背景知识.我有一个具有大内存占用(数据库)的应用程序,我想将分页与对大型数据结构(例如表,使用mmap()分配的索引)的访问相关联.该过程的映射很容易从/ proc // maps中检索.现在,如果我有导致页面错误的内存访问,我可以跟踪访问每个数据结构时导致的页面错误数量. 我认为perf 有谁知道如何获取导致页面错误的内存访问(指针)?我主要对主要的页面错误感兴趣.

关于我正在努力实现的目标的一些背景知识.我有一个具有大内存占用(数据库)的应用程序,我想将分页与对大型数据结构(例如表,使用mmap()分配的索引)的访问相关联.该过程的映射很容易从/ proc // maps中检索.现在,如果我有导致页面错误的内存访问,我可以跟踪访问每个数据结构时导致的页面错误数量.

我认为perf或systemtap可以完成这项工作.有任何想法吗?

解决方法 查看探测点可用的内容:

% stap -L vm.pagefaultvm.pagefault name:string write_access:long address:long $mm:struct mm_struct* \   $vma:struct vm_area_struct* $address:long unsigned int $flags:unsigned int

记录,尝试将地址映射到符号名称

# stap -e 'probe vm.pagefault { if (execname()=="foo") { printf("%p (%s)\n",address,usymdata(address)) } }' -d /bin/foo --ldd

另见:http://sourceware.org/systemtap/examples/#memory/pfaults.stp

总结

以上是内存溢出为你收集整理的linux – 导致主要页面错误的日志内存访问全部内容,希望文章能够帮你解决linux – 导致主要页面错误的日志内存访问所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1032360.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存