SPECweb2005 Release 1.20 User's Guide

Version 1.20, Last modified 12/13/2007



1.0 Requirements

These instructions assume that you are familiar with the following:

Web server Software configuration
Server and Network configuration
Installing and Using Open Source Software
Installing a JVM and running Java programs

The SPECweb2005 kit contains the following components:

The SPECweb2005 kit contains the following components:

Additional Software Requirements:

Hardware Requirements:

Note: For debugging purposes, you could run everything on 1 or 2 systems but these instructions assume you have at least 3.


2.0 Setting Up The Test Environment

2.1 Running the SPECweb2005 installer

Place a copy of the provided setup.jar or setup.exe on all systems that are part of your test setup. You will need to have a JVM installed; a JDK or JRE version 1.4.1 or later is recommended.  Invoke the Java installer as follows:

Follow the menu prompts and select the type of installation appropriate for the role of the system being installed.  Sample output from the Java installer is shown below:

SPECweb2005  - InstallShield Wizard
Choose the installation type that best suits your needs.
[X] 1 - Client / Prime Client Installation

        The benchmark Java source code and class files for running the prime

        client and client harness. Requires a Java Virtual Machine (JVM).

        Benchmark documentation is included as well in this installation type.
[ ] 2 - Web server Installation

        The Web server php and jsp script implementations that run on the System

        Under Test (SUT), file set generator tool for script paddings, images,

        and static content (requires a Java Virtual Machine), and benchmark

        documentation are included in this installation type.



[ ] 3 - Backend Simulator (BeSim) Installation

        Backend Simulator (BeSim); a Web server API that simulates an application

        or database server. Must be installed on a separate machine than the SUT.

        Benchmark documentation is included as well in this installation type.
[ ] 4 - Full Installation

        The program will be installed with the suggested configuration.

        Recommended for most users.



[ ] 5 - Custom

        The program will be installed with the features you choose.

                Recommended for advanced users.
 
 

If the install of the SPECweb2005 components fail with the following message:

Errors occurred during the installation.

  - JVM not found

Please follow the directions below:

If installing with Java 1.5 ( JVM 5), set the JAVA_HOME variable to the root path of your JVM engine.

        Ex: export JAVA_HOME=/usr/path_to_java

There are known capability issues with SPECweb2005 installer and Java 1.6 (JVM 6), please use Java 1.5 or earlier to complete the install.

 

2.2 Web Server Setup

General Directions:

  1. Install and configure your favorite Web server with SSL and PHP or JSP support configured in.  If using JSP, a separate Java application server may be needed. Check your Web server software documentation for assistance.
  2. Run the SPECweb2005 installer (see above) and set your current working directory to the wafgen directory.
  3. If you plan to use the JSP dynamic scripts provided:
    1. Check to see that you have either a Web server that supports JSP scripts or a Java application server (i.e. Tomcat) configured.
    2. Follow the directions provided in the SPECweb2005 scripts/jsp/README.FIRST and the INSTALL file from each .war file (jar xvf <wkld>.war) to install the JSP scripts in their proper locations.
  4. If you plan to use the PHP dynamic scripts provided:
    1. Check to see that you have a version of PHP (such as PHP 4.3.10 from www.php.net) and that your Web server is configured to support PHP dynamic scripts.
    2. Copy the contents of  the SPECweb2005 scripts/php/* directory to your document root (i.e. cp -ar ~/specweb2005/scripts/php/* /var/www/html/)
    3. Verify the "bank", "ecommerce", "support", and "Smarty-2.6.7" subdirectories are now under the document root.
    4. Ensure the web server has read and write access to these directories and subdirectories (i.e. chmod -R a+rw bank/ ecommerce/ support/ Smarty-2.6.7/ from the document root).  An alternative is to use chown to assign ownership to the Web server user/group.
    5. The stock PHP distribution ships with two ini files, php.ini-dist and php.ini-recommended. While php.ini-recommended is optimized for performance and security, for initial troubleshooting, php.ini-dist may be a better choice. This will configure PHP to display errors in the browser. If PHP comes with your OS distribution, you may only have one php.ini, in which case you should consider changing "display_errors" and "display_startup_errors" to "On".  You may also want to set "error_reporting = E_ALL", which will display all errors and warnings.
  5. Review the Wafgen README which contains the instructions for tailoring the resource files (.rc) to create the workload specific file sets for the Web server.
  6. Edit the .rc files for the workload(s) that you wish build the file sets for.  Ensure that at the very least you set SIMULTANEOUS_SESSIONS and DOCROOT to the correct values.
  7. Run wafgen according to the directions provided.
  8. Check that the files generated are correct and under your Web server’s document root.

2.3 BeSim Setup

  1. Configure the BeSim system with Web server software installed on port 81 or another port (avoid port 80 to avoid confusion with the primary Web server).
  2. Run the SPECweb2005 installer, do a "BeSim" or "Full" installation, and change your current working directory to the <specweb_install_directory>/besim directory.
  3. Review the BeSim Make_Readme.
    NOTE: For Windows/IIS, a precompiled ISAPI is provided (BeSim.dll); copy this to a directory with ISAPI execute permissions, and skip to step 6.
  4. You may choose from FastCGI* for Zeus or Apache or ISAPI for Zeus or IIS or NSAPI for SUN One and edit the appropriate MakeIncl.<type>.<OS> file to reflect your compile and linker options and select one or more Defines.  Then you can build the BeSim code for your selected API.
  5. Install this code to your BeSim Web server.
  6. Start your BeSim Web server.
  7. Use the test_besim_bank, test_besim_ecom, and test_besim_support scripts (included in the "besim" subdirectory of the installation) to test whether you're getting valid BeSim responses.  Both Perl scripts and Linux bash scripts are provided.  The Perl scripts require a Perl interpreter as well as the following Perl modules: URI, HTML-Tagset, HTML-Parser, and libwww-perl.  The bash scripts require cURL to be in the path.

    Invoke these scripts with the URL to your compiled BeSim API, i.e.
    perl test_besim_bank.pl http://192.2.1.132:81/fcgi-bin/besim_fcgi.fcgi
    bash test_besim_bank.sh http://bsim614:81/fcgi-bin/besim_fcgi.fcgi

*Note: For more FastCGI instructions (particularly for the Apache HTTP Server), see Appendix G.

If you notice that one BeSim system has a bottleneck (CPU, disk, network, etc.), there is now (as of 1.10 and above) an option to use multiple physical BeSim systems.  Follow the same steps above to install BeSim on another system, and specify multiple BESIM_SERVERs (delimited by spaces) in Test.config.  See the example Test.config files for more information.

2.4 Client Setup

  1. Install a 1.4.n JVM (or later) on all client systems.
  2. Run the SPECweb2005 installer on each client and set your current directory to the SPECweb2005 directory created by the installation.
  3. Select one of the client systems to serve as the "Prime Client" (can also be a load generating client).
  4. On the Prime Client, decide on an appropriate set of configuration files for your particular system.  For a Red Hat Linux server running Apache and PHP, you should use the *.Unix-PHP.config files.  Copy or rename these files to SPECweb_Banking.config, SPECweb_Ecommerce.config, SPECweb_Support.config, and Test.config, i.e.

    # cp SPECweb_Banking.Unix-PHP.config SPECweb_Banking.config
    # cp SPECweb_Ecommerce.Unix-PHP.config SPECweb_Ecommerce.config
    # cp SPECweb_Support.Unix-PHP.config SPECweb_Support.config
    # cp Test.Unix-PHP.config Test.config
     
  5. Review the SPECweb_<workload>.<OS/Web server>-<Script Engine>.config, Test.<OS/Web server>-<Script Engine>.config, and Testbed.config to understand the parameters in these files, with attention to those in the beginning (configurable) section of the workload and Test configuration files which may need to be updated to match your test bed.
  6. Edit configuration files to match your Web server, BeSim configuration, Client, and network configuration.  Change only those parameters listed above the section marked "# Fixed workload properties" or in Test.config above the line marked " # SPECweb2005 fixed test properties":

2.5 Network Setup

Configure all the test bed systems so that they can communicate with one another; make sure to update your /etc/hosts file (or equivalent).  The Prime must be able to communicate with each Client in the test environment.  The Web server and the BeSim system must be able to communicate with each other.   Finally, the Prime Client and BeSim system(s) must be able to communicate with each other. 


3.0 Running SPECweb2005

Once the Web server, clients, and BeSim system have been configured and networked, the next step is to try running a test strobe for one of the workloads.  To start with a short test, edit Test.config again and put these lines at the end of the file to override the defaults:

KILL_CLIENT = 1
DEBUG_LEVEL = 2
RAMPUP_SECS = 60
WARMUP_SECONDS = 60
RUN_SECONDS = 300
SIMULTANEOUS_SESSIONS = 1

Also set TEST_TYPE to the desired workload (SPECweb_Banking, SPECweb_Ecommerce, or SPECweb_Support).

Next start the test using the commands below.  Note, you may want to use 2 windows or redirect the output of the two Java commands to files or create a script run the harness and to save the output:

After test has completed check the redirected output and the contents of the results.

Note: you may wish to set other Java parameters besides the heap parameters to optimize the specwebclient processes as you increase the test load.  Check the documentation for your JVM.

Did that test work? 

Yes? Great, so did these instructions “work” or were there missing details or do you have additional questions that you are now writing up to send to web2005support@spec.org?

No? Well, there should be enough information in the debug output to start debugging. Please send any corrections or requests for clarification to these instructions to the email address above.  Continue reading and reviewing the Web server,  BeSim, and Client Checks below, along with the related README files for the various components in the attached appendixes, particularly Appendix E for common errors and Appendix F for the Support FAQ.

Now, that the basics are working,  you can try tests using more Sessions and adding more clients.

3.1 Web Server Checks

1.      Have you configured your Web server to support the HTTP or HTTPS based on the workload you are running?  Banking is all HTTPS (SSL), Ecommerce requires both HTTP and HTTPS, and Support uses only HTTP.  Note: that you can temporarily override the use of HTTPS in Banking and Ecommerce by setting USE_SSL = 0 in the .config file.  Results will be noncompliant but this may be useful when debugging. 

2.      Have you configured you Web server to support PHP or JSP according to the directions provided with your Web server?  If using JSP and a separate Java application server such as Tomcat also review its documentation and configure appropriately.  Try running the PHP or JSP "Hello World" equivalent to make sure your Web server's script engine is working. 

3.      Have you configured the wafgen .rc files for the workload and run Wafgen to create the fixed and scaling file sets? Did you set the number of SIMULTANEOUS_SESSIONS to a value equal or greater than the value you plan to use in your testing? 

4.      Can the Web server system ping the BeSim system?  Connect to the BeSim Web server (telnet [BESIM_IP] [BESIM_port])?

3.2 BeSim Checks

  1. Have you installed and configured a Web server on you BeSim system to run on port 81 (or other non-standard port number)?
  2. Have you built and installed the BeSim application (FastCGI, NSAPI, ISAPI) in the appropriate directory under the Web server's document root?
  3. Have you run the test_besim_* scripts provided with BeSim to check that the BeSim setup is working?  If not, see section 2.3.

3.3 Prime Client Checks

  1. Have you checked the SPECweb_<test type>.config?  Verify that BESIM_INIT_SCRIPT matches the relative path of the BeSim API installed on the BeSim Web server.
  2. Have you checked Test.config? Verify the following parameters match your test environment:

TEST_TYPE=SPECweb_<test type>
WEB_SERVER = <SUT>
BESIM_SERVER = <BeSim system>
BESIM_PORT = 81 [or the non-80 value set up on the BeSim Web server]
 

  1. Verified that the Prime Client can “ping” the other clients, the SUT and BeSim system?
  2. Made a quick check that the prime and other clients can successfully do a “telnet [WEB_SERVER_IP] [80 and/or 443]” and that you can successfully perform a "telnet [BESIM_IP] [BESIM_port]" from the prime?
  1. Checked that the prime (and other clients) have set per process limits for threads (i.e. max_thread_proc) and file descriptors (i.e. maxfiles) adequately for the number of simultaneous sessions you plan to test?  For example, if you are running a test for 1500 simultaneous sessions and using 2 clients, each client is responsible for 750 sessions.  Each session uses ~3 connections to the server, so each client process (i.e. java -jar specwebclient) will need just over 750 * 3 threads or 2100+ threads and 750 * 3 file descriptors (socket = FD) or 2100 file descriptors.  If your clients’ settings aren’t adequate, then your test will fail and you’ll get a Java error telling you it couldn’t start a thread or establish a connection.

3.4 Collecting Statistics (optional)

Starting with version 1.10, the prime client has the ability to poll clients for data at specified intervals during a run and display it as CSV or in a GUI.  Data is collected and displayed only during the warm-up and benchmark run phases.  The following configuration parameters in Test.config control the collection and display of this information:

3.5 Optimizing Performance

Once the SPECweb2005 benchmark is running the workload(s) without errors, you will want to optimize your testbed for optimal performance.  Here are some tips:


Appendix A - README file from SPECweb2005 client kit

Here are the basics for setting up SPECweb2005 Clients:
 
First, you should at minimum have version 1.4.1 of the java jdk and/or jre 
installed on the client machines running this code to take advantage of garbage 
collection optimizations in the more recent jvms. JVM v1.4.n is strongly 
recommended for best performance.  However, older jvm versions back to 1.3.1 
may work.
 
Next, there are five different .config files used for SPECweb2005. There is a 
SPECweb_<workload>.config for each of the three workloads (Banking, Ecommerce, 
and Support) that contain both configurable and fixed parameters specific to 
the workload.  Additionally, Test.config contains parameters that are common 
to all workloads and includes configurable and fixed parameters. Lastly, 
Testbed.config contains the testbed hardware/software configuration properties.
 
Note that Test.config and the workload-specific configuration files mentioned 
above do not exist in a new installation. Instead, example workload and Test 
configuration files are provided, and you will need to copy the sample file 
most suited to your environment. Ex:
 
cp Test.Unix-PHP.config Test.config
cp SPECweb_Banking.Unix-PHP.config SPECweb_Banking.config
cp SPECweb_Ecommerce.Unix-PHP.config SPECweb_Ecommerce.config
cp SPECweb_Support.Unix-PHP.config SPECweb_Support.config
 
"specwebclient" is the SPECweb2005 client load generator. After editing the 
.config files to match your test environment, you need to start this process on 
all client machines.  From the directory where specwebclient.jar is installed, 
and at a command prompt type:
        
         java -jar specwebclient.jar 
 
Starting "specwebclient" with tuned heap sizes and garbage collection 
parameters is also recommended. Specifically, for v1.4.1 of the jdk on a 
multi-processor client, using parallel and CMS garbage collection is strongly 
recommended. Example: 
 
        java -cp c:\sw200x -Xms512m -Xmx512m -XX:+UseParNewGC \
               -XX:+UseConcMarkSweepGC -jar specwebclient.jar
 
The usage for specwebclient is:
 
java -jar specwebclient.jar  -h
Usage: java -jar specwebclient.jar [-v] [-p port] [-n hostname] 
        [-s servername] [-le errorlogfilename] [-lo stdoutlogfilename]
 
Command line flags:
   -v  Print version string and exit
   -p <port> Override default port number 
               (allows multiple instances on same machine)
   -n <hostname>  Override hostname (use Alias)
   -s <servername> Overrides WEB_SERVER
   -le <errorlogfilename>  redirects error messages
   -lo <stdoutlogfilename> redirects other logging messages
 
 
"specweb" is the SPECweb2005 test manager and is run on the Prime Client.  It
is started after all the "specwebclient" processes have be started.  Starting 
specweb should begin the test.  The "specweb" process exits at the end of the 
test, and the "specwebclient" process can be configured to terminate as well 
(see Test.config).  To start the "specweb" process, from the directory where 
specweb.jar is installed, at a command prompt type:
 
         java -jar specweb.jar
 
The usage for specweb is:
 
java -jar specweb.jar  -h
Usage: java -jar specweb.jar [-C] [-v] [-w workloadname] [-le errorlogfilename] 
       [-lo stdoutlogfilename]
 
Command line flags:
   -h  Print this message and exit
   -v  Print version string and exit
   -C  Overrides any non-compliant settings in the .config files with the
       default compliant values
   -w  Overides the TEST_TYPE in the config file (SPECweb_Banking, 
       SPECweb_Ecommerce, SPECweb_Support)
   -le <errorlogfilename>  redirects error messages
   -lo <stdoutlogfilename> redirects other logging messages
 
 
"reporter" is the SPECweb2005 report generator and is invoked by "specweb" at
the end of a test to produce .TXT and .HTML reports.  It can also be invoked to
create a merged .raw file from results from running the 3 workloads on a given
testbed for a submission to SPEC; as well as generating  combined .TXT and 
.HTML report files. Here is the usage for the reporter:
 
java -jar reporter.jar -h
SPECweb2005 Reporter 1.10
Copyright (c) 2005 Standard Performance Evaluation Corporation
 
Command line flags:
   -h  Print this message and exit
   -v  Print version string and exit
   -c  Combine 3 separate workload files into one submittable .raw file
   -R  Regenerate HTML and ASCII reports from combined rawfile
 
Example Usage:
--------------
Regenerate reports from a single raw file:
java -jar reporter.jar results\SPECweb_Support.20050323-102204.raw
 
Combine three compliant workload raw files into one submittable raw file:
java -jar reporter.jar -c bank.raw ecom.raw support.raw submit.raw
 
Regenerate reports from a previously combined raw file:
java -jar reporter.jar -R submit.raw
 

Appendix B - Examples of common changes to configurable parameters


SPECweb_Banking.config:

36c36

< PADDING_DIR = "/www/webroot/bank/dynamic_padding/"

---

> PADDING_DIR = "/www/bank/dynamic_padding/"

47,48c47,48

< CHECK_IMAGE_DIR = "c:/www/webroot/bank/images"

< CHECK_IMAGE_SUBDIRS = 10

---

> CHECK_IMAGE_DIR = "/www/bank/images"

> CHECK_IMAGE_SUBDIRS = 100


SPECweb_Ecommerce.config:
36c36
< PADDING_DIR = "/www/webroot/ecommerce/dynamic_padding/"
---
> PADDING_DIR = "/www/ecommerce/dynamic_padding/"

SPECweb_Support.config:

40c40
< PADDING_DIR = "c:/www/webroot/support/dynamic_padding/"
---
> PADDING_DIR = "/www/support/dynamic_padding/"
50c50
< DOWNLOAD_SUBDIRS = 0
---
> DOWNLOAD_SUBDIRS = 2


Test.config:

30c30

< CLIENTS = "localhost"

---

> CLIENTS = "client50:1095 client40:1094 client30:1093 client20:1092"

32c32

< SIMULTANEOUS_SESSIONS = 5

---

> SIMULTANEOUS_SESSIONS = 1100

35,36c35,36

< TEST_TYPE=SPECweb_Banking

< # TEST_TYPE=SPECweb_Ecommerce

---

> # TEST_TYPE=SPECweb_Banking

> TEST_TYPE=SPECweb_Ecommerce

41c41

< WEB_SERVER = localhost

---

> WEB_SERVER = sut2005

54c54

< BESIM_SERVER = "localhost"

---

> BESIM_SERVER = "BeSimbox"

56c56

< BESIM_PORT = 81

---

> BESIM_PORT = 82

63a64

> BESIM_INIT_SCRIPT = "/FastCGI/BESIM_fcgi.fcgi"

67,70c68,71

< SMARTY_DIR = "c:/www/php/Smarty-2.6.3/"

< SMARTY_BANK_DIR = "c:/www/php/Smarty-2.6.3/banking/"

< SMARTY_ECOMMERCE_DIR = "c:/www/php/Smarty-2.6.3/ecommerce/"

< SMARTY_SUPPORT_DIR = "c:/www/php/Smarty-2.6.3/support/"

---

> SMARTY_DIR = "/www/Smarty-2.6.9/"

> SMARTY_BANK_DIR = "./"

> SMARTY_ECOMMERCE_DIR = "./"

> SMARTY_SUPPORT_DIR = "./"

107c108

< KILL_CLIENT = 0

---

> KILL_CLIENT = 1


Appendix C - Wafgen README file

Invoking Wafgen:
================
 
    Unix: Wafgen <workload_specific>.rc
 
    Windows: Wafgen.bat <workload_specific>.rc
 
    or alternately: 
      java -Xms384m -Xmx384m -jar Wafgen.jar <workload>.rc
    or:
      java -Xms384m -Xmx384m -classpath Wafgen.jar org.spec.wafgen.Wafgen <workload>.rc
 
 
Wafgen Overview 
===============
 
Wafgen is used to create the file sets used by SPECweb2005.  Each workload
has a "fixed" and a "scaling" file set. The fixed file set includes a set of
static elements that are commonly referenced by the pages that make up a given
workload.  The scaling file set includes a set of directories each containing 
additional static elements for the workload.  The number of directories created
(or referenced by a test) is calculated by:
        (SIMULTANEOUS_SESSIONS * DIRSCALING) = Total #directories 
 
The total amount of storage required for a benchmark is also be dependent on 
the total number of directories in the scaling file set and the size of the 
contents of each directory (see Storage Requirement below).  Since the total
number of directories needed could exceed system limits for the number of files
per directory (usually ~32,000), an additional level of subdirectories can be
added using the SUBDIR* parameters.  By default, banking and ecommerce use
SUBDIR's.  The scaling directories are round-robined across the specified
number of subdirectories.
 
This kit contains the resource files (.rc) for each workload that are used as 
input to Wafgen. There is a set tailored for both Windows and Unix/Linux in 
the windows and unix subdirectories.  To use these files copy the appropriate
set into the upper directory and edit them as needed to match your test 
environment. For conforming results - ONLY parameters listed under Section A 
of the .rc file may be modified.  Double check all section A parameters, 
especially:
        DOCROOT (if not set will default to current directory)
        BASEDIRNAME (see examples in <workload_specific>.rc files)
        BASESUBDIRNAME (if applicable)
        SIMULTANEOUS_SESSIONS (may be larger than the corresponding value in
                              value in SPECweb_<workload>.config)
 
Also verify that the SPECweb_<workload>.config file parameters in the test 
harness on the Prime Client are in agreement.
 
The .rc files for fixed file sets include:
        bank_image_props.rc
        ecommerce_image_props.rc
        support_image_props.rc
 
The .rc files for scaling file sets include:
        bank_usercheck_props.rc
        ecommerce_productline_props.rc
        support_downloads_props.rc
 
The .rc files are annotated to provide additional guidance.
 
Reminder: Altering .rc file parameters listed in section B will result
in non-conforming tests, so only modify parameters in section A.
 
 
Storage Requirements
====================
 
Since the benchmark requires that the System Under Test (SUT) contain the file 
sets for all three workloads, it is important to understand the storage
requirements for each workload.  Below are the data and formulas to help 
estimate storage requirements for SPECweb2005.
 
Banking
=======
 
The fixed file set created by bank_image_props.rc includes: 
 
o bank/images -
        44 files; Average size: 3570 bytes; Total size: 157096 bytes
 
o bank/dynamic_padding - 
        15 files; Average size: 21800 bytes; Total size: 327000 bytes
 
The scaling file set created by bank_usercheck_props.rc creates a number
of user0000nnnnnn directories based on the SIMULTANEOUS_SESSIONS value.
 
o Each bank/images/{subdir00mm}/user0000nnnnnn contains - 
        20 files; Average size: 10431 bytes; Total size: 208625 bytes
 
To estimate the storage requirement for the user check directories use
the following formula:
 
        (SIMULTANEOUS_SESSIONS * CLIENT_SESSION_USER_IDS) * 208625
 
For Conforming results, CLIENT_SESSION_USER_IDS (alias for DIRSCALING)
must be 50.
 
Example:
    ((1000 SIMULTANEOUS_SESSIONS * 50 CLIENT_SESSION_USER_IDS) * 208625) =
        10,431,250,000 bytes
 
 
Ecommerce
=========
 
The fixed file set created by ecommerce_image_props.rc includes: 
 
o ecommerce/images -
        172 files; Average size: 2032 bytes; Total size: 349557 bytes
 
o ecommerce/dynamic_padding - 
        11 files; Average size: 73000 bytes; Total size: 803000 bytes
 
The scaling file set created by ecommerce_productline_props.rc creates a number
of productline0000nnnnnn directories based on the SIMULTANEOUS_SESSIONS value.
 
o Each ecommerce/images/{subdir00mm}/productline0000nnnnnn contains - 
        30 files; Average size: 18816 bytes; Total size: 564495 bytes
 
To estimate the storage requirement for the product line directories use
the following formula:
 
        (SIMULTANEOUS_SESSIONS * DIRSCALING) * 564495
 
For Conforming results, DIRSCALING must be 5.
 
Example:
    ((1000 SIMULTANEOUS_SESSIONS * 5 DIRSCALING) * 564495) =
        2,822,475,000 bytes
 
 
Support
=======
 
The fixed file set created by support_image_props.rc includes: 
 
o support/images -
        31 files; Average size: 728 bytes; Total size: 22580 bytes
 
  Warning: this file set contains several very small files (30 bytes)
  so the path name must not be longer than 14 characters. So, 
  "support/images" is OK but "supporting/image" is NOT.  
 
o support/dynamic_padding - 
        6 files; Average size: 59616 bytes; Total size: 357700 bytes
 
The scaling file set created by support_downloads_props.rc creates a number
of user0000nnnnnn directories based on the SIMULTANEOUS_SESSIONS value.
 
o Each support/downloads/{subdir00mm}/dir0000nnnnnn contains - 
        16 files; Average size: 4279501 bytes; Total size: 68472021 bytes
 
To estimate the storage requirement for the download directories use
the following formula:
 
        (SIMULTANEOUS_SESSIONS * DIRSCALING) * 68472021
 
For Conforming results, DIRSCALING must be 0.25.
 
Example:
    ((1000 SIMULTANEOUS_SESSIONS * .25 DIRSCALING) * 68472021) =
        17,118,005,250 bytes
 
Note: The heap parameters used for Wafgen are required to support the
      large files in the scaling file set for Support workload.
        
 
Tips for Building Large Filesets
================================
 
o To increase the size of an existing file set to support a larger number of 
  Simultaneous Sessions than used initially, the steps are:
 
        Edit the <workload>.rc file for the scaling fileset create previously
        and change these parameters:
 
        SIMULTANEOUS_SESSIONS=<new higher value>
        FIRSTDIRECTORY=<1+highest directory number previously create>
 
 
        For example:
 
        Originally a support_downloads_props.rc file used: 
               SIMULTANEOUS_SESSIONS=1000
               FIRSTDIRECTORY=1
 
        When a file set to support 2000 Simultaneous Sessions is needed,
        change:
 
               SIMULTANEOUS_SESSIONS=2000
               FIRSTDIRECTORY=501
 
        Then run: Wafgen <updated_workload>.rc
 
 
o To run several Wafgen's in parallel to create a large file_set, copies of i
  the <workload>.rc file can be for each parallel wafgen to be run and make the
  changes to the SIMULTANEOUS_SESSIONS and FIRSTDIRECTORY directories.  To 
  calculate the correct values for FIRSTDIRECTORY in each copy use the formula:
 
        Number of Directories = SIMULTANEOUS_SESSIONS * DIRSCALING 
        (or for banking the DIRSCALING alias CLIENT_SESSION_USER_IDS is used). 
 
  Use the directory scaling formula for the workload (shown above) to
  calculate the correct values for FIRSTDIRECTORY in each copy.
 
        For example, to create a support downloads file set for a total of
        4000 Simultaneous Sessions:
 
        support_downloads_props.rc_1:
               SIMULTANEOUS_SESSIONS=1000
               FIRSTDIRECTORY=1
        
        support_downloads_props.rc_2:
               SIMULTANEOUS_SESSIONS=2000
               FIRSTDIRECTORY=501
        
        support_downloads_props.rc_3:
               SIMULTANEOUS_SESSIONS=3000
               FIRSTDIRECTORY=1001
        
        support_downloads_props.rc_4:
               SIMULTANEOUS_SESSIONS=4000
               FIRSTDIRECTORY=1501
 
        Then run 4 parallel wafgens:
 
               Wafgen support_downloads_props.rc_1 &
               Wafgen support_downloads_props.rc_2 &