FS8F simulates a CMS user environment, with variations simulating
a minidisk environment, an SFS environment, or some combination of
the two. Table 1 shows the search-order
characteristics of the two environments used for measurements
discussed in this document.
|Note: m and n are the number of files normally found on the the S- and Y-disks respectively. (DS) signifies the use of VM Data Spaces.|
The measurement environments have the following characteristics in common:
- A Bactrian-distribution think time averaging 30 seconds is used. (See Glossary of Performance Terms for an explanation of Bactrian distribution.)
- The workload is continuous in that scripts, repeated as often as required, are always running during the measurement period.
- Teleprocessing Network Simulator (TPNS) simulates users for the workload. TPNS runs in a separate processor and simulates LU2 terminals. User traffic travels between the processors through 3088 multisystem channel communication units.
Two FS8F workload variants were used for measurements, one for minidisk-based CMS users, and the other for SFS-based CMS users.
FS8F0R Workload: All filemodes are accessed as minidisk; SFS is not used. All of the files on the C-disk have their FSTs saved in a shared segment.
FS8FMAXR Workload: All file modes, except S and Y (which SFS does not support), the HELP minidisk, and T-disks that are created by the workload, are accessed as SFS directories. The CMSFILES shared segment is used. All read-only SFS directories are defined with PUBLIC READ authority and are mapped to VM data spaces. The read/write SFS directory accessed as file mode D is defined with PUBLIC READ and PUBLIC WRITE authority. The read/write SFS directories accessed as file modes A and B are private directories.
The following licensed programs were used in the FS8F measurements described in this document:
- VS COBOL II Compiler and Library V1R4M0
- Document Composition Facility V1R4M0
- VS FORTRAN Compiler/Library/Debug V2R5M0
- IBM High Level Assembler V1R2M0
- OS PL/I V2R3M0 Compiler & Library
- C & PL/I Common Library V1R2M0
- VTAM V3R4M1 (VTAM runs only)
- NCP V5R4M0 (VTAM runs only)
CMS allows the use of saved segments for shared code. Using saved segments can greatly improve performance by reducing end users' working set sizes and thereby decreasing paging. The FS8F workload uses the following saved segments:
Contains the CMS nucleus and file status tables (FSTs) for the S- and Y-disks.
Contain CMSPIPES code in the PIPES logical segment.
Contains the execs-in-storage segment.
Contains the following logical segments:
Contains FSTs for the HELP disk.
Contains FSTs for the C-disk. The C-disk is in the CMS search order used by the CMS1 workload and the minidisk version of the FS8F workload.
This segment space has two members: DSSVFORT for the FORTRAN compiler and FTNLIB20 for the library composite modules.
Contains DCF (Document Composition Facility) code.
Contains the GCS nucleus.
Contains the VTAM code.
A calibration is made to determine how many simulated users are required to attain the desired processor utilization for the baseline measurement. That number of users is used for all subsequent measurements on the same processor and for the same environment.
The measurement proceeds as follows:
- All of the users are logged on by TPNS.
- A script is started for each user after a random delay of up to 15 minutes. (The random delay prevents all users from starting at once.)
- A stabilization period (the length depending on the processor used) is allowed to elapse so that start-up anomalies and user synchronization are eliminated.
- At the end of stabilization, measurement tools are started simultaneously to gather data for the measurement interval.
- At the end of the measurement interval, the performance data is reduced and analyzed.
FS8F consists of 3 initialization scripts and 17 workload scripts. The
LOGESA script is run at logon to set up the required search order and
CMS configuration. Then users run the WAIT script, during which they
are inactive and waiting to start the CMSSTRT script. The
CMSSTRT script is run to stagger the start of user activity over a 15
minute interval. After the selected interval, each user starts running
a general workload script. The scripts are summarized in
Logon and Initialization
Stagger start of user activity
Assemble (HLASM) and Run
Assemble and Run
Edit a VS BASIC Program
Edit a VS BASIC Program
Edit a COBOL Program
Edit a COBOL Program
Run a COBOL Program
VS FORTRAN Compile
Productivity Aids Session
Edit and Script a File
PL/I Optimizer Session
PL/I Optimizer Session
Run Windows with IPL CMS
Run Windows with LOGON/LOGOFF
|Note: Scripts with an asterisk (*) in the "% Used" column are run only once each for each user during initialization.|
The following are descriptions of each script used in the FS8F workload.
LOGON userid SET AUTOREAD ON IF FS8F0R workload THEN Erase extraneous files from A-disk Run PROFILE EXEC to access correct search order, SET ACNT OFF, SPOOL PRT CL D, and TERM LINEND OFF ELSE Erase extraneous files from A-directory Run PROFILE EXEC to set correct search order, SET ACNT OFF, SPOOL PRT CL D, and TERM LINEND OFF END Clear the screen SET REMOTE ON
WAIT: Ten-Second Pause:
Leave the user inactive in a 10-second wait loop.
CMSSTRT: Random-Length Pause:
Delay, for up to 15 minutes, the start for each user to prevent all users from starting scripts at the same time.
QUERY reader and printer SPOOL PRT CLASS D XEDIT an assembler file and QQUIT GLOBAL appropriate MACLIBs LISTFILE the assembler file Assemble the file using HLASM (NOLIST option) Erase the text deck Repeat all the above except for XEDIT Reset GLOBAL MACLIBs Load the text file (NOMAP option) Generate a module (ALL and NOMAP options) Run the module Load the text file (NOMAP option) Run the module 2 more times Erase extraneous files from A-disk
QUERY reader and printer Clear the screen SPOOL PRT CLASS D GLOBAL appropriate MACLIBs LISTFILE assembler file XEDIT assembler file and QQUIT Assemble the file (NOLIST option) Erase the text deck Reset GLOBAL MACLIBs Load the TEXT file (NOMAP option) Generate a module (ALL and NOMAP options) Run the module Load the text file (NOMAP option) Run the module Load the text file (NOMAP option) Run the module Erase extraneous files from A-disk QUERY DISK, USERS, and TIME
XEDIT the program Get into input mode Enter 29 input lines Quit without saving file (QQUIT)
Do a FILELIST XEDIT the program Issue a GET command Issue a LOCATE command Change 6 lines on the screen Issue a TOP and BOTTOM command Quit without saving file Quit FILELIST Repeat all of the above statements, changing 9 lines instead of 6 and without issuing the TOP and BOTTOM commands
Do a FILELIST XEDIT the program Issue a mixture of 26 XEDIT file manipulation commands Quit without saving file Quit FILELIST
Do a FILELIST XEDIT the program Issue a mixture of 3 XEDIT file manipulation commands Enter 19 XEDIT input lines Quit without saving file Quit FILELIST
Set ready message short Clear the screen LINK and ACCESS a disk QUERY link and disk LISTFILE the COBOL program Invoke the COBOL compiler Erase the compiler output RELEASE and DETACH the linked disk Set ready message long SET MSG OFF QUERY SET SET MSG ON Set ready message short LINK and ACCESS a disk LISTFILE the COBOL program Run the COBOL compiler Erase the compiler output RELEASE and DETACH the linked disk QUERY TERM and RDYMSG Set ready message long SET MSG OFF QUERY set SET MSG ON PURGE printer
Define temporary disk space for 2 disks using an EXEC Clear the screen QUERY DASD and format both temporary disks Establish 4 FILEDEFs for input and output files QUERY FILEDEFs GLOBAL TXTLIB Load the program Set PER Instruction Start the program Display registers End PER Issue the BEGIN command QUERY search of minidisks RELEASE the temporary disks Define one temporary disk as another DETACH the temporary disks Reset the GLOBALs and clear the FILEDEFs
NUCXDROP NAMEFIND using an EXEC Clear the screen QUERY and PURGE the reader Compile a FORTRAN program Issue INDICATE commands Compile another FORTRAN program Issue INDICATE commands Compile another FORTRAN program Issue INDICATE command Clear the screen Compile a FORTRAN program Issue INDICATE commands Compile another FORTRAN program Issue INDICATE commands Compile another FORTRAN program Clear the screen Issue INDICATE command Erase extraneous files from A-disk PURGE the printer
SPOOL PRT CLASS D Clear the screen GLOBAL appropriate text libraries Issue 2 FILEDEFs for output Load and start a program Rename output file and PURGE printer Repeat above 5 statements for two other programs, except erase the output file for one and do not issue spool printer List and erase output files Reset GLOBALs and clear FILEDEFs
Run an EXEC to set up names file for user Clear the screen Issue NAMES command and add operator Locate a user in names file and quit Issue the SENDFILE command Send a file to yourself Issue the SENDFILE command Send a file to yourself Issue the SENDFILE command Send a file to yourself Issue RDRLIST command, PEEK and DISCARD a file Refresh RDRLIST screen, RECEIVE an EXEC on B-disk, and quit TRANSFER all reader files to punch PURGE reader and punch Run a REXX EXEC that generates 175 random numbers Run a REXX EXEC that reads multiple files of various sizes from both the A-disk and C-disk Erase EXEC off B-disk Erase extraneous files from A-disk
XEDIT a SCRIPT file Input 25 lines File the results Invoke SCRIPT processor to the terminal Erase SCRIPT file from A-disk
Do a GLOBAL TXTLIB Perform a FILELIST XEDIT the PL/I program Run 15 XEDIT subcommands File the results on A-disk with a new name Quit FILELIST Enter 2 FILEDEFs for compile Compile PL/I program using PLIOPT Erase the PL/I program Reset the GLOBALs and clear the FILEDEFs COPY names file and RENAME it TELL a group of users one pass of script run ERASE names file PURGE the printer
Copy and rename the PL/I program and data file from C-disk XEDIT data file and QQUIT XEDIT a PL/I file Issue RIGHT 20, LEFT 20, and SET VERIFY ON Change two lines Change filename and file the result Compile PL/I program using PLIOPT Set two FILEDEFs and QUERY the settings Issue GLOBAL for PL/I transient library Load the PL/I program (NOMAP option) Start the program Type 8 lines of one data file Erase extraneous files from A-disk Erase extra files on B-disk Reset the GLOBALs and clear the FILEDEFs TELL another USERID one pass of script run PURGE the printer
SET FULLSCREEN ON TELL yourself a message to create window QUERY DASD and reader Forward 1 screen TELL yourself a message to create window Drop window message Scroll to top and clear window Backward 1 screen Issue a HELP WINDOW and choose Change Window Size QUERY WINDOW Quit HELP WINDOWS Change size of window message Forward 1 screen Display window message TELL yourself a message to create window Issue forward and backward border commands in window message Position window message to another location Drop window message Scroll to top and clear window Display window message Erase MESSAGE LOGFILE IPL CMS SET AUTOREAD ON SET REMOTE ON
SET FULLSCREEN ON TELL yourself a message to create window QUERY DASD and reader Forward 1 screen TELL yourself a message to create window Drop window message Scroll to top and clear window Backward 1 screen Issue a help window and choose Change Window Size QUERY WINDOW Quit help windows Change size of window message Forward 1 screen Display window message TELL yourself a message to create window Issue forward and backward border commands in window message Position window message to another location Drop window message Scroll to top and clear window Display window message Erase MESSAGE LOGFILE LOGOFF user and wait 60 seconds LOGON user on original GRAF-ID SET AUTOREAD ON SET REMOTE ON
Issue HELP command Choose HELP CMS Issue HELP HELP Get full description and forward 1 screen Quit HELP HELP Choose CMSQUERY menu Choose QUERY menu Choose AUTOSAVE command Go forward and backward 1 screen Quit all the layers of HELP RELEASE Z-disk Compare file on A-disk to C-disk 4 times Send a file to yourself Change reader copies to two Issue RDRLIST command RECEIVE file on B-disk and quit RDRLIST Erase extra files on B-disk Erase extraneous files from A-disk