Previous Page | Next Page

ARM System Options

ARMSUBSYS= System Option



Specifies whether to initialize the ARM subsystems, which determine the internal SAS processing transactions to be monitored.
Valid in: configuration file, SAS invocation, OPTIONS statement, SAS System Options window
Category: System administration: Performance
Restriction: After you initialize the ARM subsystems, you cannot specify a different ARM agent using ARMAGENT=.
Default: (ARM_NONE)

Syntax
Syntax Description
Details
Overview of ARM Subsystems
Understanding the Records Written by the ARM_DSIO Subsystem
Understanding the Records Written by the ARM_PROC Subsystem
Examples
See Also

Syntax

ARMSUBSYS=(ARM_NONE | ARM_ALL | subsystem1 <item1 <item2 <...> > > <, subsystem2 <item1 <item2 <...> > >><OFF>)


Syntax Description

ARM_NONE

specifies that no internal SAS processing transactions are written to the SAS logging facility or the ARM log. This is the default setting.

ARM_ALL

specifies that all internal SAS processing transactions are written to the SAS logging facility or the ARM log.

subsystem

specifies an ARM subsystem, which is a group of internal SAS processing transactions that are to be written to the SAS logging facility or the ARM log. The following subsystems are available:

ARM_DSIO

collects SAS data set I/O processing information.

ARM_PROC

collects SAS procedure and DATA step processing information.

item

specifies a name that determines the type and amount of transaction logging for each subsystem. Use item specifications as filters so that only the information that you are interested in is logged. For example, if you want one type of transaction, list the single item. If you want multiple transactions for a subsystem, list each item. Items are associated with each subsystem as follows:

ARM_DSIO
OPENCLOSE

logs a SAS data set open and close transactions as a start record when a data set is opened, and as a stop record when it is closed.

VARDEF

logs OPENCLOSE records and an update record for each defined variable (output opens).

VARSEL

logs OPENCLOSE records and an update record for each selected variable (input and update opens).

VARINFO

logs OPENCLOSE, VARDEF, and VARSEL records.

WHEREOPT

logs OPENCLOSE records and an update record for each selected index from a WHERE processing optimization. Available for the default Base SAS engine and the V6 compatibility engine only.

WHEREINFO

logs OPENCLOSE, WHEREOPT, and WHERETXT records.

WHERETXT

logs OPENCLOSE records and one or more update records that contain a textual representation of the active WHERE expression. Each record can hold approximately 1,000 bytes.

MIN

logs the minimum amount of information. For SAS 9, MIN logs the OPENCLOSE records.

MAX

logs the maximum amount of information. For SAS 9 and later, MAX logs all of the ARM_DSIO records. This is the default for ARM_DSIO.

LEVEL1

logs OPENCLOSE, VARDEF, and VARSEL records.

LEVEL2

logs LEVEL1, WHEREOPT, and WHERETXT records.

For more information about the logged records, see Understanding the Records Written by the ARM_DSIO Subsystem.

ARM_PROC

For more information about the logged records, see Understanding the Records Written by the ARM_PROC Subsystem.

OFF

disables the specified subsystem. In the following code, all subsystems are enabled for the DATA step, and then the ARM_PROC subsystem is disabled for the PRINT procedure:

options armsubsys=(arm_all);
data a; 
   x=1; 
run;

options armsubsys=(arm_proc off);
proc print; 
run;

Details


Overview of ARM Subsystems

The ARMSUBSYS= system option specifies whether to initialize the ARM subsystems, which determine the internal SAS processing transactions to be monitored. An ARM subsystem is a group of internal SAS processing transactions. When using the SAS logging facility and ARM 2.0, the records are routed to ARM2.Record.

If you want to specify a different ARM log location by using the ARMLOC= system option, be sure to issue the ARMLOC= option before you initialize an ARM subsystem. The subsystem start record is written to the new ARM log using the ARM2.Record pattern layout. For more information on pattern layouts, see Description of ARM Appender Pattern Layouts.


Understanding the Records Written by the ARM_DSIO Subsystem

The ARM_DSIO subsystem writes records to the SAS logging facility or the ARM log. This subsystem collects SAS data set I/O processing information. The records that are written to the SAS logging facility or the ARM log are:

I (initialization) record

is an initialization record, with one record written per session when the ARM subsystem is initialized. It starts with an I, followed by:

  • the SAS datetime value for session start

  • an application ID

  • a user start time

  • a system start time

  • an application name

  • a user ID

Output:
I,1326479452.427000,1,1.171684,1.532203,SAS,sasabc
G (GetID) record

is a transaction ID record, with one record written per transaction. It starts with a G, followed by:

  • the SAS datetime value when the record was written

  • the application ID from the I record

  • a transaction class ID

  • a transaction name

  • a transaction description

  • a description of the values provided in subsequent S (start) and P (stop) records

Output:

G,1326479452.447000,1,1,MVA_DSIO.OPEN_CLOSE,DATA SET OPEN/CLOSE,
   LIBNAME,ShortStr,MEMTYPE,ShortStr,MEMNAME,LongStr

LIBNAME refers to the libref for a SAS library, MEMTYPE refers to the member type (DATA or VIEW), and MEMNAME refers to a SAS data set name.

S (start) record

is a start record, with one record written each time a file is opened. It starts with an S, followed by:

  • the SAS datetime value when the record was written

  • the application ID from the I record

  • the transaction class ID from the G record

  • a transaction ID

  • a user start time

  • a system start time

  • the actual libref, member type, and member name of the opened file

Output:

S,1326479486.396000,1,1,1,1.311886,2.22908,WORK    ,DATA    ,GRADES
P (stop) record

is a stop record, with one record written each time a file is closed. It starts with a P, followed by:

  • the SAS datetime value when the record was written

  • the application ID from the I record

  • the transaction class ID from the G record

  • the transaction ID from the associated S record

  • a user start time

  • a system start time

  • the actual libref, member type, and member name of the closed file

Output:

P,1326479486.706000,1,1,1,1.331915,2.22908,0,WORK    ,DATA    
,GRADES
U (update) record

is an update record, with one record written each time a variable is defined or selected, and each time an index is used during WHERE processing optimization. A U record displays the text of a WHERE expression. It starts with a U, followed by:

  • the SAS datetime value when the record was written

  • the application ID from the I record

  • the transaction class ID from the G record

  • the transaction ID from the associated S record

  • a user start time

  • a system start time

  • the detailed information for the type of U record being written

For variable definition and selection, the variable type is specified with a 1 for a numeric variable, or with a 2 for a character variable. The variable type with the name of the variable are followed by DEF for definition or SEL for selection.

Output:

U,1326479486.406000,1,1,1,1.321900,2.22908,2,VAR(2,Student),DEF
U,1326479508.508000,1,1,2,1.612318,2.443513,2,VAR(2,Student),SEL

For index selection, the index type is specified with an S for simple, or with a C for complex, followed by the name of the index.

U,1326479606.48000,1,1,4,2.403456,3.915630,2,INDEX(S,Test1),SEL

For WHERE expression text information, the expression is specified as:

U,1326479606.48000,1,1,4,2.403456,3.915630,2,WHERE(0),test1>60
E (end) record

is an end record, with one record written per session. It starts with an E, followed by:

  • the SAS datetime value when the record was written

  • the application ID from the I record

  • a user stop time

  • a system stop time

Output:

E,1326480210.737000,1,2.533643,4.25788

Understanding the Records Written by the ARM_PROC Subsystem

The ARM_PROC subsystem writes records to the SAS logging facility or the ARM log. This subsystem collects SAS procedure and DATA step processing information. The records that are written to the SAS logging facility or the ARM log are:

G (GetID) record

is a transaction ID record, with one record written per transaction. It starts with a G, followed by:

  • the SAS datetime value when the record was written

  • the application ID from the I record

  • a transaction class ID

  • a transaction name

  • a transaction description

  • a description of the values that are provided in subsequent S (start) and P (stop) records

Output:

G,1501177361.426000,1,2,PROCEDURE,PROC  START/STOP,PROC_NAME,ShortStr,
     PROC_IO,Count64,PROC_MEM,Count64,PROC_LABEL,LongStr 
S (start) record

is a start record, with one record written immediately before the procedure executes. It starts with an S, followed by:

  • the SAS datetime value when the record was written

  • an application ID

  • a transaction class ID

  • a transaction ID

  • a user CPU (start) time

  • a system CPU (start) time

  • the procedure or DATA step name

  • the procedure or I/O count

  • the amount of memory used

  • the label name

Output:

S,1501177361.436000,1,2,2,0.350504,0.620892,DATASTEP,0,0,
GLMSTEPONE
P (stop) record

is a stop record, with one record written when the procedure terminates. It starts with a P, followed by:

  • the SAS datetime value when the record was written

  • an application ID

  • a transaction class ID

  • a transaction ID from the associated S record

  • a user CPU (start) time

  • a system CPU (start) time

  • the procedure or DATA step name

  • the procedure or I/O count

  • the amount of memory used

  • the label name

Output:

P,1501177361.776000,1,2,2,0.510734,0.741065,0,DATASTEP,8123483,333792,
GLMSTEPONE

Examples

The following example shows the ARM subsystem ARM_DSIO, which collects SAS data set I/O processing information. The OPENCLOSE item logs the SAS data set open and close transaction.

options armsubsys=(ARM_DSIO OPENCLOSE);

The following example shows the ARM subsystem ARM_ALL, which specifies that all internal SAS processing transactions are written to the SAS logging facility or the ARM log.

options 
   armagent=SAS 
   armsubsys=arm_all;


See Also

System Options:

ARMAGENT= System Option

ARMLOC= System Option

Previous Page | Next Page | Top of Page