blob: 13d273a33895e524c339765ae52116a3ed1b1ba6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# iotask.stp
# A reimplementation of user script: iotask.stp given at OLS 2005
# in the current language.
#
# Will Cohen
# 9/22/2005
global names, opens
global reads, read_bytes
global writes, write_bytes
probe kernel.function("sys_open") {
++names[execname()]; ++opens[execname()];
}
probe kernel.function("sys_read") {
++names[execname()]; ++reads[execname()];
read_bytes[execname()] += $count;
}
probe kernel.function("sys_write") {
++names[execname()]; ++writes[execname()];
write_bytes[execname()] += $count;
}
probe begin { log( "starting probe" ); }
probe end {
foreach( name in names){
log ("process: " . name);
if (opens[name])
log( "opens n=" . sprint(opens[name]));
if ( reads[name]){
count = reads[name]; total=read_bytes[name];
log("reads n, sum, avg=". sprint(count)
. "," . sprint(total) . "," . sprint(total/count));
}
if (writes[name]){
count = writes[name]; total=write_bytes[name];
log("writes n, sum, avg=". sprint(count)
. "," . sprint(total) . "," . sprint(total/count));
}
log("");
}
}
|