Home | History | Annotate | Download | only in workloads
      1  8404  Andrew #
      2  8404  Andrew # CDDL HEADER START
      3  8404  Andrew #
      4  8404  Andrew # The contents of this file are subject to the terms of the
      5  8404  Andrew # Common Development and Distribution License (the "License").
      6  8404  Andrew # You may not use this file except in compliance with the License.
      7  8404  Andrew #
      8  8404  Andrew # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
      9  8404  Andrew # or http://www.opensolaris.org/os/licensing.
     10  8404  Andrew # See the License for the specific language governing permissions
     11  8404  Andrew # and limitations under the License.
     12  8404  Andrew #
     13  8404  Andrew # When distributing Covered Code, include this CDDL HEADER in each
     14  8404  Andrew # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     15  8404  Andrew # If applicable, add the following below this CDDL HEADER, with the
     16  8404  Andrew # fields enclosed by brackets "[]" replaced with your own identifying
     17  8404  Andrew # information: Portions Copyright [yyyy] [name of copyright owner]
     18  8404  Andrew #
     19  8404  Andrew # CDDL HEADER END
     20  8404  Andrew #
     21  9801  Andrew # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
     22  8404  Andrew # Use is subject to license terms.
     23  8404  Andrew #
     24  9801  Andrew # Exercises the indexed attribute of the fileset_pick() function. 
     25  8404  Andrew # 
     26  8404  Andrew 
     27  8404  Andrew set $dir=/tmp
     28  8404  Andrew set $cached=false
     29  8404  Andrew set $meandirwidth=20
     30  8404  Andrew set $nthreads=5
     31  9801  Andrew set $nfiles=10000
     32  8404  Andrew set $sync=false
     33  8404  Andrew 
     34  8404  Andrew define randvar name=$wrtiosize, min=512, round=512, type=gamma, mean=16k
     35  8404  Andrew 
     36  8404  Andrew define randvar name=$rdiosize, type=tabular, min=8k, round=1k, randtable =
     37  8404  Andrew {{85,   8k,  8k},
     38  8404  Andrew  {15,   8k, 64k}
     39  8404  Andrew }
     40  8404  Andrew 
     41  8404  Andrew define randvar name=$filesize, type=tabular, min=1k, randtable =
     42  8404  Andrew {{33,   1k,    1k},
     43  8404  Andrew  {21,   1k,    3k},
     44  8404  Andrew  {13,   3k,    5k},
     45  8404  Andrew  {10,   5k,   11k},
     46  8404  Andrew  {08,  11k,   21k},
     47  8404  Andrew  {05,  21k,   43k},
     48  8404  Andrew  {04,  43k,   85k},
     49  8404  Andrew  {03,  85k,  171k},
     50  8404  Andrew  {02, 171k,  341k},
     51  8404  Andrew  {01, 341k, 1707k}
     52  8404  Andrew }
     53  8404  Andrew 
     54  8404  Andrew define randvar name=$fileidx, type=gamma, min=0, gamma=100
     55  8404  Andrew 
     56  9801  Andrew define fileset name=bigfileset,path=$dir,size=$filesize,entries=$nfiles,dirwidth=$meandirwidth,prealloc=100,cached=$cached
     57  8404  Andrew 
     58  8404  Andrew define process name=netclient,instances=1
     59  8404  Andrew {
     60  8404  Andrew   thread name=fileuser,memsize=10m,instances=$nthreads
     61  8404  Andrew   {
     62  8404  Andrew     flowop openfile name=openfile1,filesetname=bigfileset,indexed=$fileidx,fd=1
     63  8404  Andrew     flowop openfile name=openfile2,filesetname=bigfileset,indexed=$fileidx,fd=2
     64  8404  Andrew     flowop openfile name=openfile3,filesetname=bigfileset,indexed=$fileidx,fd=3
     65  8404  Andrew     flowop appendfilerand name=appendfilerand1,iosize=$wrtiosize,fd=1
     66  8404  Andrew     flowop closefile name=closefile1,fd=1
     67  8404  Andrew     flowop readwholefile name=readfile1,iosize=$rdiosize,fd=2
     68  8404  Andrew     flowop readwholefile name=readfile2,iosize=$rdiosize,fd=3
     69  8404  Andrew     flowop closefile name=closefile2,fd=2
     70  8404  Andrew     flowop closefile name=closefile3,fd=3
     71  8404  Andrew   }
     72  8404  Andrew }
     73  8404  Andrew 
     74  9801  Andrew echo  "NetworkServer Version 1.1 personality successfully loaded"
     75  8404  Andrew usage "Usage: set \$dir=<dir>            defaults to $dir"
     76  8404  Andrew usage "       set \$cached=<bool>        defaults to $cached"
     77  8404  Andrew usage "       set \$wrtiosize.type=<type>   defaults to $wrtiosize.type"
     78  8404  Andrew usage "       set \$wrtiosize.randsrc=<src> defaults to $wrtiosize.randsrc"
     79  8404  Andrew usage "       set \$wrtiosize.mean=<mean>   defaults to $wrtiosize.mean"
     80  8404  Andrew usage "       set \$wrtiosize.gamma=<gamma> defaults to $wrtiosize.gamma"
     81  8404  Andrew usage "       set \$rdiosize.type=<type>   defaults to $rdiosize.type"
     82  8404  Andrew usage "       set \$rdiosize.randsrc=<src> defaults to $rdiosize.randsrc"
     83  8404  Andrew usage "       set \$filesize.type=<type>   defaults to $filesize.type"
     84  8404  Andrew usage "       set \$filesize.randsrc=<src> defaults to $filesize.randsrc"
     85  8404  Andrew usage "       set \$nfiles=<value>       defaults to $nfiles"
     86  8404  Andrew usage "       set \$nthreads=<value>     defaults to $nthreads"
     87  8404  Andrew usage "       set \$sync=<bool>          defaults to $sync"
     88  8404  Andrew usage " "
     89  8404  Andrew usage "       run runtime (e.g. run 60)"
     90