xref: /netbsd-src/external/cddl/dtracetoolkit/dist/Docs/Examples/seeksize_example.txt (revision c29d51755812ace2e87aeefdb06cb2b4dac7087a)
1*c29d5175SchristosThe following are examples of seeksize.d.
2*c29d5175Schristos
3*c29d5175Schristosseeksize.d records disk head seek size for each operation by process.
4*c29d5175SchristosThis allows up to identify processes that are causing "random" disk
5*c29d5175Schristosaccess and those causing "sequential" disk access.
6*c29d5175Schristos
7*c29d5175SchristosIt is desirable for processes to be accesing the disks in large
8*c29d5175Schristossequential operations. By using seeksize.d and bitesize.d we can
9*c29d5175Schristosidentify this behaviour.
10*c29d5175Schristos
11*c29d5175Schristos
12*c29d5175Schristos
13*c29d5175SchristosIn this example we read through a large file by copying it to a
14*c29d5175Schristosremote server. Most of the seek sizes are zero, indicating sequential
15*c29d5175Schristosaccess - and we would expect good performance from the disks
16*c29d5175Schristosunder these conditions,
17*c29d5175Schristos
18*c29d5175Schristos# ./seeksize.d
19*c29d5175SchristosTracing... Hit Ctrl-C to end.
20*c29d5175Schristos^C
21*c29d5175Schristos
22*c29d5175Schristos   22349  scp /dl/sol-10-b63-x86-v1.iso mars:\0
23*c29d5175Schristos
24*c29d5175Schristos           value  ------------- Distribution ------------- count
25*c29d5175Schristos              -1 |                                         0
26*c29d5175Schristos               0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   726
27*c29d5175Schristos               1 |                                         0
28*c29d5175Schristos               2 |                                         0
29*c29d5175Schristos               4 |                                         0
30*c29d5175Schristos               8 |@                                        13
31*c29d5175Schristos              16 |                                         4
32*c29d5175Schristos              32 |                                         0
33*c29d5175Schristos              64 |                                         0
34*c29d5175Schristos             128 |                                         2
35*c29d5175Schristos             256 |                                         3
36*c29d5175Schristos             512 |                                         4
37*c29d5175Schristos            1024 |                                         4
38*c29d5175Schristos            2048 |                                         3
39*c29d5175Schristos            4096 |                                         0
40*c29d5175Schristos            8192 |                                         3
41*c29d5175Schristos           16384 |                                         0
42*c29d5175Schristos           32768 |                                         1
43*c29d5175Schristos           65536 |                                         0
44*c29d5175Schristos
45*c29d5175Schristos
46*c29d5175Schristos
47*c29d5175SchristosIn this example we run find. The disk operations are fairly scattered,
48*c29d5175Schristosas illustrated below by the volume of non sequential reads,
49*c29d5175Schristos
50*c29d5175Schristos# ./seeksize.d
51*c29d5175SchristosTracing... Hit Ctrl-C to end.
52*c29d5175Schristos^C
53*c29d5175Schristos
54*c29d5175Schristos   22399  find /var/sadm/pkg/\0
55*c29d5175Schristos
56*c29d5175Schristos           value  ------------- Distribution ------------- count
57*c29d5175Schristos              -1 |                                         0
58*c29d5175Schristos               0 |@@@@@@@@@@@@@                            1475
59*c29d5175Schristos               1 |                                         0
60*c29d5175Schristos               2 |                                         44
61*c29d5175Schristos               4 |@                                        77
62*c29d5175Schristos               8 |@@@                                      286
63*c29d5175Schristos              16 |@@                                       191
64*c29d5175Schristos              32 |@                                        154
65*c29d5175Schristos              64 |@@                                       173
66*c29d5175Schristos             128 |@@                                       179
67*c29d5175Schristos             256 |@@                                       201
68*c29d5175Schristos             512 |@@                                       186
69*c29d5175Schristos            1024 |@@                                       236
70*c29d5175Schristos            2048 |@@                                       201
71*c29d5175Schristos            4096 |@@                                       274
72*c29d5175Schristos            8192 |@@                                       243
73*c29d5175Schristos           16384 |@                                        154
74*c29d5175Schristos           32768 |@                                        113
75*c29d5175Schristos           65536 |@@                                       182
76*c29d5175Schristos          131072 |@                                        81
77*c29d5175Schristos          262144 |                                         0
78*c29d5175Schristos
79*c29d5175Schristos
80*c29d5175Schristos
81*c29d5175Schristos
82*c29d5175SchristosI found the following interesting. This time I gzipp'd the large file.
83*c29d5175SchristosWhile zipping, the process is reading from one location and writing
84*c29d5175Schristosto another. One might expect that as the program toggles between
85*c29d5175Schristosreading from one location and writing to another, that often the
86*c29d5175Schristosdistance would be the same (depending on where UFS puts the new file),
87*c29d5175Schristos
88*c29d5175Schristos# ./seeksize.d
89*c29d5175SchristosTracing... Hit Ctrl-C to end.
90*c29d5175Schristos^C
91*c29d5175Schristos
92*c29d5175Schristos   22368  gzip sol-10-b63-x86-v1.iso\0
93*c29d5175Schristos
94*c29d5175Schristos           value  ------------- Distribution ------------- count
95*c29d5175Schristos              -1 |                                         0
96*c29d5175Schristos               0 |@@@@@@@@@@@@                             353
97*c29d5175Schristos               1 |                                         0
98*c29d5175Schristos               2 |                                         0
99*c29d5175Schristos               4 |                                         0
100*c29d5175Schristos               8 |                                         7
101*c29d5175Schristos              16 |                                         4
102*c29d5175Schristos              32 |                                         2
103*c29d5175Schristos              64 |                                         4
104*c29d5175Schristos             128 |                                         14
105*c29d5175Schristos             256 |                                         3
106*c29d5175Schristos             512 |                                         3
107*c29d5175Schristos            1024 |                                         5
108*c29d5175Schristos            2048 |                                         1
109*c29d5175Schristos            4096 |                                         0
110*c29d5175Schristos            8192 |                                         3
111*c29d5175Schristos           16384 |                                         1
112*c29d5175Schristos           32768 |                                         1
113*c29d5175Schristos           65536 |                                         1
114*c29d5175Schristos          131072 |                                         1
115*c29d5175Schristos          262144 |@@@@@@@@                                 249
116*c29d5175Schristos          524288 |                                         1
117*c29d5175Schristos         1048576 |                                         2
118*c29d5175Schristos         2097152 |                                         1
119*c29d5175Schristos         4194304 |                                         2
120*c29d5175Schristos         8388608 |@@@@@@@@@@@@@@@@@@                       536
121*c29d5175Schristos        16777216 |                                         0
122*c29d5175Schristos
123*c29d5175Schristos
124*c29d5175Schristos
125*c29d5175Schristos
126*c29d5175SchristosThe following example compares the operation of "find" with "tar".
127*c29d5175SchristosBoth are reading from the same location, and we would expect that
128*c29d5175Schristosboth programs would generally need to do the same number of seeks
129*c29d5175Schristosto navigate the direttory tree (depending on caching); and tar
130*c29d5175Schristoscausing extra operations as it reads the file contents as well,
131*c29d5175Schristos
132*c29d5175Schristos# ./seeksize.d
133*c29d5175SchristosTracing... Hit Ctrl-C to end.
134*c29d5175Schristos^C
135*c29d5175Schristos
136*c29d5175Schristos     PID  CMD
137*c29d5175Schristos   22278  find /etc\0
138*c29d5175Schristos
139*c29d5175Schristos           value  ------------- Distribution ------------- count
140*c29d5175Schristos              -1 |                                         0
141*c29d5175Schristos               0 |@@@@@@@@@@@@@@@@@@@@                     251
142*c29d5175Schristos               1 |                                         0
143*c29d5175Schristos               2 |@                                        8
144*c29d5175Schristos               4 |                                         5
145*c29d5175Schristos               8 |@                                        10
146*c29d5175Schristos              16 |@                                        10
147*c29d5175Schristos              32 |@                                        10
148*c29d5175Schristos              64 |@                                        9
149*c29d5175Schristos             128 |@                                        11
150*c29d5175Schristos             256 |@                                        14
151*c29d5175Schristos             512 |@@                                       20
152*c29d5175Schristos            1024 |@                                        10
153*c29d5175Schristos            2048 |                                         6
154*c29d5175Schristos            4096 |@                                        7
155*c29d5175Schristos            8192 |@                                        10
156*c29d5175Schristos           16384 |@                                        16
157*c29d5175Schristos           32768 |@@                                       21
158*c29d5175Schristos           65536 |@@                                       28
159*c29d5175Schristos          131072 |@                                        7
160*c29d5175Schristos          262144 |@                                        14
161*c29d5175Schristos          524288 |                                         6
162*c29d5175Schristos         1048576 |@                                        15
163*c29d5175Schristos         2097152 |@                                        7
164*c29d5175Schristos         4194304 |                                         0
165*c29d5175Schristos
166*c29d5175Schristos
167*c29d5175Schristos   22282  tar cf /dev/null /etc\0
168*c29d5175Schristos
169*c29d5175Schristos           value  ------------- Distribution ------------- count
170*c29d5175Schristos              -1 |                                         0
171*c29d5175Schristos               0 |@@@@@@@@@@                               397
172*c29d5175Schristos               1 |                                         0
173*c29d5175Schristos               2 |                                         8
174*c29d5175Schristos               4 |                                         14
175*c29d5175Schristos               8 |                                         16
176*c29d5175Schristos              16 |@                                        24
177*c29d5175Schristos              32 |@                                        29
178*c29d5175Schristos              64 |@@                                       99
179*c29d5175Schristos             128 |@@                                       73
180*c29d5175Schristos             256 |@@                                       78
181*c29d5175Schristos             512 |@@@                                      109
182*c29d5175Schristos            1024 |@@                                       62
183*c29d5175Schristos            2048 |@@                                       69
184*c29d5175Schristos            4096 |@@                                       73
185*c29d5175Schristos            8192 |@@@                                      113
186*c29d5175Schristos           16384 |@@                                       81
187*c29d5175Schristos           32768 |@@@                                      111
188*c29d5175Schristos           65536 |@@@                                      108
189*c29d5175Schristos          131072 |@                                        49
190*c29d5175Schristos          262144 |@                                        33
191*c29d5175Schristos          524288 |                                         20
192*c29d5175Schristos         1048576 |                                         13
193*c29d5175Schristos         2097152 |                                         7
194*c29d5175Schristos         4194304 |                                         5
195*c29d5175Schristos         8388608 |@                                        30
196*c29d5175Schristos        16777216 |                                         0
197*c29d5175Schristos
198