#!/usr/bin/env bpftrace #include tracepoint:syscalls:sys_exit_newstat, tracepoint:syscalls:sys_exit_newlstat, tracepoint:syscalls:sys_exit_newfstat, tracepoint:syscalls:sys_exit_newfstatat { @stat_syscall_count[pid, comm] = count(); } kprobe:vfs_statfs { @vfs_statfs_count[pid, comm] = count(); } kprobe:vfs_getattr { @vfs_getattr_count[pid, comm] = count(); } tracepoint:nfs4:nfs4_readdir { @nfs4_readdir_count[pid, comm] = count(); } tracepoint:nfs:nfs_getattr_enter { @nfs_getattr_count[pid, comm] = count(); } tracepoint:nfs:nfs_revalidate_inode_enter { @nfs_revalidate_inode_count[pid, comm] = count(); } tracepoint:nfs4:nfs4_getattr { @nfs4_getattr_count[pid, comm] = count(); @nfs4_getattr_total++; } kprobe:nfs4_xdr_enc_statfs { @nfs4_xdr_enc_statfs_count[pid, comm] = count(); @nfs4_xdr_enc_statfs_total++; } kprobe:nfs4_xdr_enc_getattr { @nfs4_xdr_enc_getattr_count[pid, comm] = count(); @nfs4_xdr_enc_getattr_total++; } interval:s:10 { printf("=== Top 10 callers at timestamp %d msecs ===\n", (nsecs/1000000)); printf("+ vfs_statfs_count\n"); print(@vfs_statfs_count, 10); printf("\n"); clear(@vfs_statfs_count); printf("+ vfs_getattr_count\n"); print(@vfs_getattr_count, 10); printf("\n"); clear(@vfs_getattr_count); printf("+ stat syscalls\n"); print(@stat_syscall_count, 10); printf("\n"); clear(@stat_syscall_count); printf("+ nfs4_readdir\n"); print(@nfs4_readdir_count, 10); printf("\n"); clear(@nfs4_readdir_count); printf("+ nfs_getattr\n"); print(@nfs_getattr_count, 10); printf("\n"); clear(@nfs_getattr_count); printf("+ nfs_revalidate_inode\n"); print(@nfs_revalidate_inode_count, 10); printf("\n"); clear(@nfs_revalidate_inode_count); printf("+ nfs4_getattr\n"); print(@nfs4_getattr_count, 10); printf("total nfs4_getattrs seen: %d\n", @nfs4_getattr_total); clear(@nfs4_getattr_count); clear(@nfs4_getattr_total); printf("\n"); printf("+ nfs4_xdr_enc_statfs\n"); print(@nfs4_xdr_enc_statfs_count, 10); printf("total nfs4_xdr_enc_statfss_seen: %d\n", @nfs4_xdr_enc_statfs_total); clear(@nfs4_xdr_enc_statfs_count); clear(@nfs4_xdr_enc_statfs_total); printf("\n"); printf("+ nfs4_xdr_enc_getattr\n"); print(@nfs4_xdr_enc_getattr_count, 10); printf("total nfs4_xdr_enc_getattrs_seen: %d\n", @nfs4_xdr_enc_getattr_total); clear(@nfs4_xdr_enc_getattr_count); clear(@nfs4_xdr_enc_getattr_total); printf("--------------------------\n\n"); }