Gathering Global Activity Statistics Using ^GLOSTAT
InterSystems IRIS® data platform provides the ^GLOSTAT utility, which gathers global activity statistics and displays a variety of information about disk I/O operations.
You can also view the statistics reported by ^GLOSTAT from the Management Portal. Log in to the Portal for the system you are monitoring and navigate to the System Usage page (System Operation > System Usage).
Running ^GLOSTAT
To run the ^GLOSTAT routine you must be in the %SYS namespace. The name of the routine is case-sensitive. Type the following command and press Enter:
do ^GLOSTAT
The ^GLOSTAT routine displays statistics, as seen in Example A. Each time InterSystems IRIS starts, it initializes the ^GLOSTAT statistical counters; the initial output of ^GLOSTAT reflects operations since InterSystems IRIS has started.
The following prompt appears beneath the report:
Continue (c), Timed Stats (# sec > 0), Quit (q)?
You may enter one of the following:
Response | Action |
---|---|
c | Displays the report again with updated cumulative statistics since the last initialization. |
q | Quits the ^GLOSTAT routine. |
# (a positive integer indicating number of seconds) | Initializes statistics, counts statistics for the indicated number of seconds, and reports statistics as an average per second (Example B). |
Overview of ^GLOSTAT Statistics
Each ^GLOSTAT statistic represents the number of times a type of event has occurred since InterSystems IRIS has started, or per second during a defined interval. You may run ^GLOSTAT at any time from the system manager’s namespace. In most cases, you should run the utility on an active system, not an idle one.
If the InterSystems IRIS instance is a stand-alone configuration or an ECP data server, then the report displays only the “Total” column. If it is an ECP application server (that is, it connects to a remote database) then three columns are shown: “Local,” “Remote,” and “Total” (Example C).
The following table defines the ^GLOSTAT statistics.
Statistic | Definition |
---|---|
Global references (all) | Logical count of accesses to globals, including Sets, Kills, $Data, $Order, $Increment, $Query, and global references in expressions. |
Global update references | Logical count of global references that are Sets, Kills, or $Increments. |
Private global references | The count of all process private global accesses. |
Private update references | The count of process private global references that are SETs or KILLs, etc. |
Routine calls | Number of calls to a routine. |
Routine buffer loads and saves | Total number of routine loads and saves as a result of ZLoad, ZSave, and running routines. (In a well-tuned environment, this number increases slowly, since most routine loads are satisfied by the routine cache memory without accessing the disk. Each routine load or save transfers up to 32 KB of data (64 KB for Unicode).) |
Routine commands | Number of routine commands executed since system startup. |
Routine not cached | Number of routines not cached in memory. This information help you determine whether or not the routine buffer cache is adequately sized. |
Logical block requests | Number of database blocks read by the globals database code. (In a well-tuned environment, many of these reads are satisfied without disk access.) |
Block reads | Number of physical database blocks read from disk for both global and routine references. |
Block writes | Number of physical database blocks written to disk for both global and routine references. |
WIJ writes | Number of writes to the write image journal file. |
Cache Efficiency | Number of all global references divided by the number of physical block reads and writes. Not a percentage. |
Journal Entries | Number of journal records created—one for each database modification (Set , Kill, etc.) or transaction event (TStart, TCommit) or other event that is saved to the journal. |
Journal Block Writes | Number of 64-KB journal blocks written to the journal file. |
Examples of ^GLOSTAT Output
The following output samples show the various options when running the ^GLOSTAT utility routine:
-
Example A — Initial running on a stand-alone or server configuration.
-
Example B — Subsequent running at a timed interval.
-
Example C — Initial running on a client configuration.
Example A
The following is sample output of the initial running of the ^GLOSTAT routine. The InterSystems IRIS instance is either a stand-alone configuration or a server.
%SYS>do ^GLOSTAT
Statistics Total
-------------- ---------
Global references (all): 530,801
Global update references: 175,073
Private global references: 160,267
Private update references: 76,739
Routine calls: 650,085
Routine buffer loads & saves: 570
Routine commands: 17,747,411
Routine not cached: 710
Logical block requests: 289,166
Block reads: 2,179
Block writes: 680
WIJ writes: 903
Cache Efficiency: 186
Journal Entries: 1,356
Journal Block Writes: 6
Continue (c), Timed Stats (# sec > 0), Quit (q)?
Example B
The following example shows ^GLOSTAT statistics per second for a 30-second timed interval. The InterSystems IRIS instance is either a stand-alone configuration or a server.
Continue (c), Timed Stats (# sec > 0), Quit (q)? 30
Counts per Second for 30 Seconds...
Statistics (per second) Total
-------------- ---------
Global references (all): 4.0
Global update references: 2.0
Private global references: 2.0
Private update references: 0.9
Routine calls: 8.8
Routine buffer loads & saves: 0
Routine commands: 222.2
Routine not cached: 0
Logical block requests: 2.3
Block reads: 0
Block writes: 0
WIJ writes: 0
Cache Efficiency: no i/o
Journal Entries: 0
Journal Block Writes: 0
Continue (c), Timed Stats (# sec > 0), Quit (q)?
Example C
The following is sample output of the initial running of the ^GLOSTAT routine. The InterSystems IRIS instance is a client.
%SYS>do ^GLOSTAT
Statistics Local Remote Total
-------------- --------- --------- ---------
Global references (all): 123,783 3 123,786
Global update references: 6,628 0 6,628
Private global references: 3,558 n/a 3,558
Private update references: 1,644 n/a 1,644
Routine calls: 55,275 0 55,275
Routine buffer loads & saves: 759 0 759
Routine commands: 1,304,213
Routine not cached: 167
Logical block requests: 83,959 n/a 83,959
Block reads: 2,125 0 2,125
Block writes: 217 n/a 217
WIJ writes: 126 n/a 126
Cache Efficiency: 53 no gets
Journal Entries: 511 n/a 511
Journal Block Writes: 3 n/a 3
Continue (c), Timed Stats (# sec > 0), Quit (q)?