"Linux性能优化答疑:perf工具使用方法详解"

需积分: 0 0 下载量 108 浏览量 更新于2023-12-22 收藏 5.19MB PDF 举报
本期答疑主题是Linux性能优化中常用的perf工具的使用方法,包括前面案例中perf使用方法的各种疑问。在性能分析中,perf非常有效,是每个人都需要掌握的核心工具。perf的使用方法非常丰富,但目前只需要掌握perf record和perf report就可以了。在perf显示的调用栈中,一些内核符号如果不理解也没有关系,可以暂时跳过,不影响分析。本期答疑将回答一些关于perf的使用问题。 问题1:在使用perf工具时,看到的是16进制地址而不是函数名。在CentOS系统中,使用perf工具无法看到函数名,只能看到一些16进制格式的函数地址。为了解决这个问题,倪朋飞提出了四个方法。 第一个方法是,在容器外面构建相同路径的依赖库。通过在容器外面构建相同路径的依赖库,可以让perf在容器内部找到依赖的库,从而显示相应的函数名。 第二个方法是,在容器内部运行perf。将perf工具直接运行在容器内部,从而可以更好地识别容器内部的符号路径,得到更准确的结果。 第三个方法是,指定符号路径为容器文件系统的路径。通过指定符号路径为容器文件系统的路径,可以让perf在容器内部正确地找到符号文件,从而显示函数名。 第四个方法是,在容器外面把分析纪录。将perf工具在容器外部运行,然后将分析记录拷贝到容器内部进行分析,避免容器内部环境的限制。 通过以上四个方法,可以有效解决在使用perf工具时看到16进制地址而无法看到函数名的问题。 在本期答疑中,倪朋飞还提到,目前只需要会用perf record和perf report就够了。对于perf显示的调用栈中的某些内核符号,如果不理解也没有关系,可以暂时跳过,并不影响分析。 总体来说,本期答疑主要解决了在使用perf工具时可能遇到的问题,并提供了解决方法。同时也强调了只需要掌握perf record和perf report这两个核心功能就可以进行性能分析。最后,鼓励读者不必担心对于一些内核符号不理解而影响分析,可以先跳过。这样的答疑内容对于初学者来说非常实用,帮助他们更好地掌握和应用perf工具。
2022-08-08 上传