#!/usr/bin/env bpftrace BEGIN { printf("开始统计 kvstore 进程的 recvfrom 调用次数...\n"); printf("每 5 秒打印一次统计,Ctrl-C 退出\n\n"); // 统计变量 @enter = 0; @exit = 0; } interval:s:5 { time("%H:%M:%S"); printf(" sys_enter_recvfrom 调用次数: %10d\n", @enter); printf(" sys_exit_recvfrom 调用次数: %10d\n", @exit); // 可选:如果想每轮清零统计,取消下面注释 // clear(@enter); // clear(@exit); } tracepoint:syscalls:sys_enter_recvfrom /comm == "kvstore"/ { @enter++; } tracepoint:syscalls:sys_exit_recvfrom /comm == "kvstore"/ { @exit++; } END { printf("\n最终统计:\n"); printf("sys_enter_recvfrom: %d 次\n", @enter); printf("sys_exit_recvfrom : %d 次\n", @exit); }