通过本文你将学习到以下内容:
- 如何通过制作内存火焰图并分析内存性能
- 如何使用TCMalloc优化内存性能
- 如何调整TCMalloc参数
分析内存page_fault错误
page_fault火焰图
通常进行cpu执点分析时,我们会使用perf制作cpu火焰图。
其实我们可以针对不同类型的问题,制作相应的火焰图。如分析内存page_fault问题时,制作page_fault火焰图
制作步骤
1. 使用stackcount跟踪page_fault错误
因为不同cpu上linux处理page_fault的入口可能不同,所以我们先用bpftrace工具查找一下对应的函数
# bpftrace -l | grep page_fault
kprobe:__traceiter_io_page_fault
kprobe:gv11b_fb_fix_page_fault.isra.0
rawtracepoint:io_page_fault
tracepoint:iommu:io_page_fault
通过名称没有发现,进一步查找
bpftrace -l | grep mm_fault
kprobe:handle_mm_fault
ro