D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
sbin
/
Filename :
naptime.bt
back
Copy
#!/usr/bin/env bpftrace // naptime - Show voluntary sleep calls. // // See BPF Performance Tools, Chapter 13, for an explanation of this tool. // // Example of usage: // // # ./naptime.bt // Attaching 2 probes... // Tracing sleeps. Hit Ctrl-C to end. // TIME PCOMM PPID COMM PID SECONDS // 15:50:00 1 systemd 1319 mysqld 1.000 // 15:50:01 4388 bash 25250 sleep 5.000 // 15:50:01 1 systemd 1319 mysqld 1.000 // 15:50:01 1 systemd 1180 cron 60.000 // [...] // // The output shows mysqld performing a one second sleep every second (likely // a daemon thread), a sleep(1) command sleeping for five seconds and called // by bash, and cron threads sleeping for 60 seconds. // // Copyright (c) 2019 Brendan Gregg. // This was originally created for the BPF Performance Tools book // published by Addison Wesley. ISBN-13: 9780136554820 // When copying or porting, include this comment. // // 16-Feb-2019 Brendan Gregg Created this. #ifndef BPFTRACE_HAVE_BTF #include <linux/time.h> #include <linux/sched.h> #endif BEGIN { printf("Tracing sleeps. Hit Ctrl-C to end.\n"); printf("%-8s %-6s %-16s %-6s %-16s %s\n", "TIME", "PPID", "PCOMM", "PID", "COMM", "SECONDS"); } tracepoint:syscalls:sys_enter_nanosleep /args.rqtp.tv_sec + args.rqtp.tv_nsec/ { time("%H:%M:%S "); printf("%-6d %-16s %-6d %-16s %d.%03d\n", ppid, pcomm, pid, comm, args.rqtp.tv_sec, ((uint64)args.rqtp.tv_nsec) / 1e6); }