Home | History | Annotate | Line # | Download | only in Docs
      1  1.1  christos #
      2  1.1  christos #   DTrace OneLiners
      3  1.1  christos #
      4  1.1  christos 
      5  1.1  christos DTrace One Liners,
      6  1.1  christos 
      7  1.1  christos # New processes with arguments,
      8  1.1  christos dtrace -n 'proc:::exec-success { trace(curpsinfo->pr_psargs); }'
      9  1.1  christos  
     10  1.1  christos # Files opened by process name,
     11  1.1  christos dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
     12  1.1  christos 
     13  1.1  christos # Files created using creat() by process name,
     14  1.1  christos dtrace -n 'syscall::creat*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
     15  1.1  christos  
     16  1.1  christos # Syscall count by process name,
     17  1.1  christos dtrace -n 'syscall:::entry { @num[execname] = count(); }'
     18  1.1  christos  
     19  1.1  christos # Syscall count by syscall,
     20  1.1  christos dtrace -n 'syscall:::entry { @num[probefunc] = count(); }'
     21  1.1  christos  
     22  1.1  christos # Syscall count by process ID,
     23  1.1  christos dtrace -n 'syscall:::entry { @num[pid,execname] = count(); }'
     24  1.1  christos 
     25  1.1  christos # Read bytes by process name,
     26  1.1  christos dtrace -n 'sysinfo:::readch { @bytes[execname] = sum(arg0); }'
     27  1.1  christos  
     28  1.1  christos # Write bytes by process name,
     29  1.1  christos dtrace -n 'sysinfo:::writech { @bytes[execname] = sum(arg0); }'
     30  1.1  christos  
     31  1.1  christos # Read size distribution by process name,
     32  1.1  christos dtrace -n 'sysinfo:::readch { @dist[execname] = quantize(arg0); }'
     33  1.1  christos  
     34  1.1  christos # Write size distribution by process name,
     35  1.1  christos dtrace -n 'sysinfo:::writech { @dist[execname] = quantize(arg0); }'
     36  1.1  christos  
     37  1.1  christos # Disk size by process ID,
     38  1.1  christos dtrace -n 'io:::start { printf("%d %s %d",pid,execname,args[0]->b_bcount); }'
     39  1.1  christos 
     40  1.1  christos # Disk size aggregation
     41  1.1  christos dtrace -n 'io:::start { @size[execname] = quantize(args[0]->b_bcount); }'
     42  1.1  christos 
     43  1.1  christos # Pages paged in by process name,
     44  1.1  christos dtrace -n 'vminfo:::pgpgin { @pg[execname] = sum(arg0); }'
     45  1.1  christos  
     46  1.1  christos # Minor faults by process name,
     47  1.1  christos dtrace -n 'vminfo:::as_fault { @mem[execname] = sum(arg0); }'
     48  1.1  christos  
     49  1.1  christos # Interrupts by CPU,
     50  1.1  christos dtrace -n 'sdt:::interrupt-start { @num[cpu] = count(); }'
     51  1.1  christos 
     52  1.1  christos # CPU cross calls by process name,
     53  1.1  christos dtrace -n 'sysinfo:::xcalls { @num[execname] = count(); }'
     54  1.1  christos  
     55  1.1  christos # Lock time by process name,
     56  1.1  christos dtrace -n 'lockstat:::adaptive-block { @time[execname] = sum(arg1); }'
     57  1.1  christos  
     58  1.1  christos # Lock distribution by process name,
     59  1.1  christos dtrace -n 'lockstat:::adaptive-block { @time[execname] = quantize(arg1); }'
     60  1.1  christos 
     61  1.1  christos # Kernel funtion calls by module
     62  1.1  christos dtrace -n 'fbt:::entry { @calls[probemod] = count(); }'
     63  1.1  christos 
     64  1.1  christos # Stack size for processes
     65  1.1  christos dtrace -n 'sched:::on-cpu { @[execname] = max(curthread->t_procp->p_stksize);}'
     66  1.1  christos 
     67  1.1  christos # Kill all top processes when they are invoked,
     68  1.1  christos dtrace -wn 'syscall::exece:return /execname == "top"/ { raise(9); }'
     69  1.1  christos 
     70  1.1  christos 
     71  1.1  christos 
     72  1.1  christos DTrace Longer One Liners,
     73  1.1  christos 
     74  1.1  christos # New processes with arguments and time,
     75  1.1  christos dtrace -qn 'syscall::exec*:return { printf("%Y %s\n",walltimestamp,curpsinfo->pr_psargs); }'
     76  1.1  christos  
     77  1.1  christos # Successful signal details,
     78  1.1  christos dtrace -n 'proc:::signal-send /pid/ { printf("%s -%d %d",execname,args[2],args[1]->pr_pid); }'
     79  1.1  christos 
     80  1.1  christos 
     81  1.1  christos 
     82