1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21#
22# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23# Use is subject to license terms.
24#
25
26# $dir - directory for datafiles
27# $eventrate - event generator rate (0 == free run)
28# $iosize - iosize for database block access
29# $nshadows - number of shadow processes
30# $ndbwriters - number of database writers
31
32set $dir=/tmp
33set $eventrate=0
34set $iosize=2k
35set $nshadows=200
36set $ndbwriters=10
37set $runtime=30
38set $usermode=20000
39set $memperthread=1m
40
41debug 1
42eventgen rate=$eventrate
43
44# Define a datafile and logfile
45define file name=aux.df,path=$dir,size=251m,reuse,prealloc,paralloc
46define file name=control_001,path=$dir,size=2m,reuse,prealloc,paralloc
47define file name=cust_0_0,path=$dir,size=6704m,reuse,prealloc,paralloc
48define file name=cust_0_1,path=$dir,size=6704m,reuse,prealloc,paralloc
49define file name=cust_0_2,path=$dir,size=6704m,reuse,prealloc,paralloc
50define file name=cust_0_3,path=$dir,size=6704m,reuse,prealloc,paralloc
51define file name=dist_0_0,path=$dir,size=31m,reuse,prealloc,paralloc
52define file name=hist_0_0,path=$dir,size=3002m,reuse,prealloc,paralloc
53define file name=icust1_0_0,path=$dir,size=4943m,reuse,prealloc,paralloc
54define file name=icust2_0_0,path=$dir,size=4943m,reuse,prealloc,paralloc
55define file name=idist_0_0,path=$dir,size=11m,reuse,prealloc,paralloc
56define file name=iitem_0_0,path=$dir,size=11m,reuse,prealloc,paralloc
57define file name=iordr2_0_0,path=$dir,size=1651m,reuse,prealloc,paralloc
58define file name=istok_0_0,path=$dir,size=2262m,reuse,prealloc,paralloc
59define file name=item_0_0,path=$dir,size=21m,reuse,prealloc,paralloc
60define file name=iware_0_0,path=$dir,size=11m,reuse,prealloc,paralloc
61define file name=nord_0_0,path=$dir,size=561m,reuse,prealloc,paralloc
62define file name=ordr_0_0,path=$dir,size=44301m,reuse,prealloc,paralloc
63define file name=roll1,path=$dir,size=2001m,reuse,prealloc,paralloc
64define file name=sp_0,path=$dir,size=1001m,reuse,prealloc,paralloc
65define file name=stok_0_0,path=$dir,size=8052m,reuse,prealloc,paralloc
66define file name=stok_0_1,path=$dir,size=8052m,reuse,prealloc,paralloc
67define file name=stok_0_2,path=$dir,size=8052m,reuse,prealloc,paralloc
68define file name=stok_0_3,path=$dir,size=8052m,reuse,prealloc,paralloc
69define file name=stok_0_4,path=$dir,size=8052m,reuse,prealloc,paralloc
70define file name=system_1,path=$dir,size=401m,reuse,prealloc,paralloc
71define file name=temp_0_0,path=$dir,size=4943m,reuse,prealloc,paralloc
72define file name=temp_0_1,path=$dir,size=4943m,reuse,prealloc,paralloc
73define file name=ware_0_0,path=$dir,size=11m,reuse,prealloc,paralloc
74define file name=log_1_1,path=$dir,size=1021m,reuse,prealloc,paralloc
75
76# Define database writer processes
77define process name=dbwr,instances=$ndbwriters
78{
79  thread name=dbwr,memsize=$memperthread,useism
80  {
81	flowop aiowrite name=dbaiowrite-aux.df,filename=aux.df,
82                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
83        flowop aiowrite name=dbaiowrite-control_001,filename=control_001,
84                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
85        flowop aiowrite name=dbaiowrite-cust_0_0,filename=cust_0_0,
86                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
87        flowop aiowrite name=dbaiowrite-cust_0_1,filename=cust_0_1,
88                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
89        flowop aiowrite name=dbaiowrite-cust_0_2,filename=cust_0_2,
90                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
91        flowop aiowrite name=dbaiowrite-cust_0_3,filename=cust_0_3,
92                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
93        flowop aiowrite name=dbaiowrite-dist_0_0,filename=dist_0_0,
94                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
95        flowop aiowrite name=dbaiowrite-hist_0_0,filename=hist_0_0,
96                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
97        flowop aiowrite name=dbaiowrite-icust1_0_0,filename=icust1_0_0,
98                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
99        flowop aiowrite name=dbaiowrite-icust2_0_0,filename=icust2_0_0,
100                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
101        flowop aiowrite name=dbaiowrite-idist_0_0,filename=idist_0_0,
102                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
103        flowop aiowrite name=dbaiowrite-iitem_0_0,filename=iitem_0_0,
104                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
105        flowop aiowrite name=dbaiowrite-iordr2_0_0,filename=iordr2_0_0,
106                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
107        flowop aiowrite name=dbaiowrite-istok_0_0,filename=istok_0_0,
108                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
109        flowop aiowrite name=dbaiowrite-item_0_0,filename=item_0_0,
110                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
111        flowop aiowrite name=dbaiowrite-iware_0_0,filename=iware_0_0,
112                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
113        flowop aiowrite name=dbaiowrite-nord_0_0,filename=nord_0_0,
114                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
115        flowop aiowrite name=dbaiowrite-ordr_0_0,filename=ordr_0_0,
116                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
117        flowop aiowrite name=dbaiowrite-roll1,filename=roll1,
118                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
119        flowop aiowrite name=dbaiowrite-sp_0,filename=sp_0,
120                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
121        flowop aiowrite name=dbaiowrite-stok_0_0,filename=stok_0_0,
122                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
123        flowop aiowrite name=dbaiowrite-stok_0_1,filename=stok_0_1,
124                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
125        flowop aiowrite name=dbaiowrite-stok_0_2,filename=stok_0_2,
126                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
127        flowop aiowrite name=dbaiowrite-stok_0_3,filename=stok_0_3,
128                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
129        flowop aiowrite name=dbaiowrite-stok_0_4,filename=stok_0_4,
130                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
131        flowop aiowrite name=dbaiowrite-system_1,filename=system_1,
132                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
133        flowop aiowrite name=dbaiowrite-temp_0_0,filename=temp_0_0,
134                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
135        flowop aiowrite name=dbaiowrite-temp_0_1,filename=temp_0_1,
136                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
137        flowop aiowrite name=dbaiowrite-ware_0_0,filename=ware_0_0,
138                iosize=$iosize,workingset=10g,random,dsync,directio,iters=10
139	flowop hog name=dbwr-hog,value=10000
140	flowop semblock name=dbwr-block,value=100,highwater=10000
141	flowop aiowait name=dbwr-aiowait
142  }
143}
144
145define process name=lgwr,instances=1
146{
147  thread name=lgwr,memsize=$memperthread,useism
148  {
149    flowop write name=lg-write,filename=log_1_1,
150        iosize=256k,workingset=1g,random,dsync,directio
151#   flowop delay name=lg-delay,value=1
152    flowop semblock name=lg-block,value=320,highwater=1000
153  }
154}
155
156define process name=shadow,instances=$nshadows
157{
158  thread name=shadow,memsize=$memperthread,useism
159  {
160        flowop read name=shadowread-aux.df,filename=aux.df,
161                iosize=$iosize,workingset=10g,random,dsync,directio
162        flowop hog name=shadowhog,value=$usermode
163        flowop read name=shadowread-control_001,filename=control_001,
164                iosize=$iosize,workingset=10g,random,dsync,directio
165        flowop hog name=shadowhog,value=$usermode
166        flowop read name=shadowread-cust_0_0,filename=cust_0_0,
167                iosize=$iosize,workingset=10g,random,dsync,directio
168        flowop hog name=shadowhog,value=$usermode
169        flowop read name=shadowread-cust_0_1,filename=cust_0_1,
170                iosize=$iosize,workingset=10g,random,dsync,directio
171        flowop hog name=shadowhog,value=$usermode
172        flowop read name=shadowread-cust_0_2,filename=cust_0_2,
173                iosize=$iosize,workingset=10g,random,dsync,directio
174        flowop hog name=shadowhog,value=$usermode
175        flowop read name=shadowread-cust_0_3,filename=cust_0_3,
176                iosize=$iosize,workingset=10g,random,dsync,directio
177        flowop hog name=shadowhog,value=$usermode
178        flowop read name=shadowread-dist_0_0,filename=dist_0_0,
179                iosize=$iosize,workingset=10g,random,dsync,directio
180        flowop hog name=shadowhog,value=$usermode
181        flowop read name=shadowread-hist_0_0,filename=hist_0_0,
182                iosize=$iosize,workingset=10g,random,dsync,directio
183        flowop hog name=shadowhog,value=$usermode
184        flowop read name=shadowread-icust1_0_0,filename=icust1_0_0,
185                iosize=$iosize,workingset=10g,random,dsync,directio
186        flowop hog name=shadowhog,value=$usermode
187        flowop read name=shadowread-icust2_0_0,filename=icust2_0_0,
188                iosize=$iosize,workingset=10g,random,dsync,directio
189        flowop hog name=shadowhog,value=$usermode
190        flowop read name=shadowread-idist_0_0,filename=idist_0_0,
191                iosize=$iosize,workingset=10g,random,dsync,directio
192        flowop hog name=shadowhog,value=$usermode
193        flowop read name=shadowread-iitem_0_0,filename=iitem_0_0,
194                iosize=$iosize,workingset=10g,random,dsync,directio
195        flowop hog name=shadowhog,value=$usermode
196        flowop read name=shadowread-iordr2_0_0,filename=iordr2_0_0,
197                iosize=$iosize,workingset=10g,random,dsync,directio
198        flowop hog name=shadowhog,value=$usermode
199        flowop read name=shadowread-istok_0_0,filename=istok_0_0,
200                iosize=$iosize,workingset=10g,random,dsync,directio
201        flowop hog name=shadowhog,value=$usermode
202        flowop read name=shadowread-item_0_0,filename=item_0_0,
203                iosize=$iosize,workingset=10g,random,dsync,directio
204        flowop hog name=shadowhog,value=$usermode
205        flowop read name=shadowread-iware_0_0,filename=iware_0_0,
206                iosize=$iosize,workingset=10g,random,dsync,directio
207        flowop hog name=shadowhog,value=$usermode
208        flowop read name=shadowread-nord_0_0,filename=nord_0_0,
209                iosize=$iosize,workingset=10g,random,dsync,directio
210        flowop hog name=shadowhog,value=$usermode
211        flowop read name=shadowread-ordr_0_0,filename=ordr_0_0,
212                iosize=$iosize,workingset=10g,random,dsync,directio
213        flowop hog name=shadowhog,value=$usermode
214        flowop read name=shadowread-roll1,filename=roll1,
215                iosize=$iosize,workingset=10g,random,dsync,directio
216        flowop hog name=shadowhog,value=$usermode
217        flowop read name=shadowread-sp_0,filename=sp_0,
218                iosize=$iosize,workingset=10g,random,dsync,directio
219        flowop hog name=shadowhog,value=$usermode
220        flowop read name=shadowread-stok_0_0,filename=stok_0_0,
221                iosize=$iosize,workingset=10g,random,dsync,directio
222        flowop hog name=shadowhog,value=$usermode
223        flowop read name=shadowread-stok_0_1,filename=stok_0_1,
224                iosize=$iosize,workingset=10g,random,dsync,directio
225        flowop hog name=shadowhog,value=$usermode
226        flowop read name=shadowread-stok_0_2,filename=stok_0_2,
227                iosize=$iosize,workingset=10g,random,dsync,directio
228        flowop hog name=shadowhog,value=$usermode
229        flowop read name=shadowread-stok_0_3,filename=stok_0_3,
230                iosize=$iosize,workingset=10g,random,dsync,directio
231        flowop hog name=shadowhog,value=$usermode
232        flowop read name=shadowread-stok_0_4,filename=stok_0_4,
233                iosize=$iosize,workingset=10g,random,dsync,directio
234        flowop hog name=shadowhog,value=$usermode
235        flowop read name=shadowread-system_1,filename=system_1,
236                iosize=$iosize,workingset=10g,random,dsync,directio
237        flowop hog name=shadowhog,value=$usermode
238        flowop read name=shadowread-temp_0_0,filename=temp_0_0,
239                iosize=$iosize,workingset=10g,random,dsync,directio
240        flowop hog name=shadowhog,value=$usermode
241        flowop read name=shadowread-temp_0_1,filename=temp_0_1,
242                iosize=$iosize,workingset=10g,random,dsync,directio
243        flowop hog name=shadowhog,value=$usermode
244        flowop read name=shadowread-ware_0_0,filename=ware_0_0,
245                iosize=$iosize,workingset=10g,random,dsync,directio
246        flowop hog name=shadowhog,value=$usermode
247        flowop read name=shadowread-log_1_1,filename=log_1_1,
248                iosize=$iosize,workingset=10g,random,dsync,directio
249        flowop hog name=shadowhog,value=$usermode
250	flowop sempost name=shadow-post-lg,value=1,target=lg-block,blocking
251	flowop sempost name=shadow-post-dbwr,value=1,target=dbwr-block,blocking
252	flowop eventlimit name=random-rate
253  }
254}
255
256echo "Tpcso Version 2.1 personality successfully loaded"
257usage "Usage: set \$dir=<dir>         defaults to $dir"
258usage " "
259usage "       set \$eventrate=<value> defaults to $eventrate"
260usage " "
261usage "       set \$iosize=<value>    defaults to $iosize, typically 2k or 8k"
262usage " "
263usage "       set \$memperthread=<value> defaults to $memperthread, there are 211 threads"
264usage " "
265usage "       run runtime (e.g. run 60)"
266usage " "
267usage "Note - this workload needs at least 512MB of of memory"
268usage " "
269