当前位置:  技术问答>linux和unix

请教linux内核中的__purge_vmap_area_lazy函数

    来源: 互联网  发布时间:2016-07-20

    本文导语:  小弟最近在调一个系统(包括用户态程序和内核态驱动)的性能,发现有81%的时间在vmlinux中,而其中第一位的是90%的__purge_vmap_area_lazy函数,第二位的是3.8%的rb_next函数。 想来应该是内存管理上出了什么问题,但是小...

小弟最近在调一个系统(包括用户态程序和内核态驱动)的性能,发现有81%的时间在vmlinux中,而其中第一位的是90%的__purge_vmap_area_lazy函数,第二位的是3.8%的rb_next函数。

想来应该是内存管理上出了什么问题,但是小弟并没有研究过linux内核,只是在书上看到过段页式内存的基本介绍,还有就是知道每个进程4G空间中高端的1G空间分成内核直接映射区(用Kmalloc分配)和内核动态映射空间(用vmalloc函数分配)。所以,碰到这个问题没有了方向感,最基本的想法就是在内存分配释放的一些关键点增加log,看看有没有什么不对劲的地方,不过我也不知道这些关键点是什么,虽然大概理解这是slab分配器用红黑树数据结构在工作,减少碎片什么的。我也去匆匆翻过一些说linux内核内存管理的书本,感觉和这个具体问题的gap还是有一些大的。

好在我还有一个以前版本的系统,就是架构什么的发生了挺大变化,无法直接从代码层次进行比较。这个版本的性能比我在调的现在版本要好,vtune显示有88%的时间在vmlinux中,其中第一位的是60%的rb_next函数,第二位的是15%的__get_vm_area_node,而__purge_vmap_area_lazy则只占0.11%。我的目的就是把现在版本的性能调回到原先版本差不多的性能。

哪位高手有什么方向性的指点吗,虽然说有两个版本可以比较,只是我还没有找到怎么比较的有效方法,谢谢。
如果还能够抽出宝贵时间写一些更加系统的东西帮助理解,授我以渔,那就更感谢了。

|
把内核版本报一下.
可以去国内的一个邮件列表交流: linux-kernel@zh-kernel.org

|
只能说说思路了,希望能帮上忙:
1. 检查__purge_vmap_area_lazy里面有什么改动,有没有些使函数执行时间变长的地方,看看能不能优化。
2. 如果1没有,那么就是__purge_vmap_area_lazy调用频率变多。
   a. 分析一下执行环境,内存有没有变动?
   b. 多核?看看是不是spin_lock等待时间太长?

|
你可以使用kprobes来测试你的程序
内核源代码/Documentation/kprobes.txt是它的文档
可能对你的应用有用

|
你是什么应用?

    
 
 

您可能感兴趣的文章:

  • 请教:如何安装新内核(rpm包)而不同原来得内核冲突?? 在线等待!!
  • 请教一个linux进程内核栈的问题
  • 【请教】怎么修改linux内核参数
  • 请教,linux内核协议栈中,从内核往驱动发送的报文(注意是下行,不是上行),如何从sk_buff判断是组播数据报文还是组播协议报文????
  • 万能的CSDN啊,100分请教高手一个编译内核传参的问题!
  • 请教风河 linux内核 如何配置使之支持xwindows?
  • 80分请教关于内核的module机制
  • 请教内核ppp代码的内容——在线等
  • 请教高手:如何学习内核编程?
  • 请教内核编译的问题!
  • 请教Linux内核编译的问题
  • 初学Linux内核编译,几个问题请教一下
  • 请教高手:如何学习内核编程? iis7站长之家
  • 内核安装错误,请教!
  • 请教内核树的问题
  • 请教部分内核参数的意义
  • 100分请教高手一个Linux内核ARM汇编的问题
  • 请教linux的学习,怎么学? 内核开发找什么样的工作?
  • 内核相关项目请教
  • 请教2.6内核下如何进行文件的读写?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分请教:怎样在Kdevelop不能够Trace构造函数?(其他函数可以Trace)
  • 请教:javascript 里有没有时间循环执行的函数,如我按住鼠标触发mousedown 事件函数时,反复执行我写的一个函数?
  • 请教semop()函数的用法、含义
  • 请教套接字中的select()函数问题
  • 请教一个函数入口处的汇编问题(压栈问题)
  • 请教一个关于ftw函数的问题!
  • 100分请教高手一个bash函数
  • 请教signal函数的用法!
  • 请教exec系列函数的用法
  • 请教UNIX C字符输入的检测函数?
  • 请教关于dlopen,动态库连接程序的输出函数
  • 请教select函数
  • (菜鸟请教)还有修改/etc/passwd文件用什么函数呢?
  • linux下time函数问题请教高手
  • 请教一个网络编程问题,accept函数的,在线等,急。。。
  • 请教一个取时间的函数,急!!!!!!!!!!!!!!!!
  • 请教,JavaScript中能不能调用JSP写的函数?
  • 请教:clock_gettime函数的使用问题
  • 请教 变量= { function:函数名};什么意思
  • signal 函数请教
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3