ptracer性能打点工具简介
功能概述
MemFabric内置的ptracer工具支持通过如下方式对代码进行打点,对关键函数调用的次数、成功失败情况、耗时等进行统计。
TP_TRACE_BEGIN(TP_HYBM_RDMA_LH_TO_GD);
ret = CopyLH2GD(params.src, params.dest, params.dataSize, options);
TP_TRACE_END(TP_HYBM_RDMA_LH_TO_GD, ret);
内置线程每隔固定周期将打点数据输出到ptracer独立日志中,为分析性能瓶颈、测试性能数据提供了一种简便的方法。
使用方法
ptracer是否开启受编译宏ENABLE_PTRACER控制,使用build_and_pack_run.sh构建脚本时默认开启。
启用ptracer时,会在/var/log/memfabric_hybrid下生成ptracer_<pid>.dat形式的文件用于保存打点数据。
输出样例
以下是一次测试中ptracer输出的一个周期内的打点数据示例
TIME NAME BEGIN GOOD_END BAD_END ON_FLY MIN(us) MAX(us) AVG(us) TOTAL(us)
2026-01-05 14:57:03 TP_HYBM_RDMA_LH_TO_GD 117 117 0 0 120.830 16193.220 713.658 83498.010
2026-01-05 14:57:03 TP_MMC_LOCAL_BATCH_PUT 30 30 0 0 124.620 16400.930 3353.871 100616.120
2026-01-05 14:57:03 TP_ACC_SEND_ALLOC 2 2 0 0 564.440 602.770 583.605 1167.210
字段描述
| keyword | description |
|---|---|
| TIME | 时间 |
| NAME | Tracepoint ID |
| BEGIN | 调用次数 |
| GOOD_END | 执行成功次数 |
| BAD_END | 执行失败次数 |
| ON_FLY | 执行中的数量 |
| MIN(us) | 最低耗时(微秒) |
| MAX(us) | 最高耗时(微秒) |
| AVG(us) | 平均耗时(微秒) |
| TOTAL(us) | 总计耗时(微秒) |