Skip to main content

SYS.History.SharedMemoryData

Class SYS.History.SharedMemoryData Extends (%Persistent, %XML.Adaptor) [ System = 4 ]

Basic detail collection class of System Usage metrics for the Shared Memory Application Monitor (%Monitor.System.HistoryMemory) Properties represent metrics which get collected every few minutes by the %MONAPP Application Monitor process when the %Monitor.System.HistoryMemory class is "active".

Properties

DateTime

Property DateTime As %TimeStamp [ Internal, SqlColumnNumber = 2 ];

Time of sample

Length

Property Length As %Integer [ SqlColumnNumber = 3 ];

Length of sample in seconds

ZDATE

Property ZDATE As %Integer [ SqlColumnNumber = 4 ];

UTC date key

ZTIME

Property ZTIME As %Integer [ SqlColumnNumber = 5 ];

UTC time key

SMID

Property SMID As array Of SYS.History.SharedMemoryUsage;

System usage metrics

Allocated

Property Allocated As %Integer [ SqlColumnNumber = 6, SqlFieldName = Allocated ];

Shared Memory Allocated

Available

Property Available As %Integer [ SqlColumnNumber = 7, SqlFieldName = Available ];

Shared Memory Available

Used

Property Used As %Integer [ SqlColumnNumber = 8, SqlFieldName = Used ];

Shared Memory Used

SMTUsed

Property SMTUsed As %Integer [ SqlColumnNumber = 9, SqlFieldName = SMTUsed ];

Static Memory Table Used

GSTUsed

Property GSTUsed As %Integer [ SqlColumnNumber = 10, SqlFieldName = GSTUsed ];

General String Table Used

TotalUsed

Property TotalUsed As %Integer [ SqlColumnNumber = 11, SqlFieldName = TotalUsed ];

Total Memory used

TotalGSTSMTAllocated

Property TotalGSTSMTAllocated As %Integer [ SqlColumnNumber = 12, SqlFieldName = TotalGSTSMTAllocated ];

Total GST and SMT allocated

Methods

Sample

ClassMethod Sample() As SYS.History.SharedMemoryData [ Internal ]

Database metrics Instantiate the class and fetch current values for all metric properties.

Finalise

Method Finalise(sample As SYS.History.SharedMemoryData) As SYS.History.SharedMemoryData [ Internal ]

Report

ClassMethod Report(Verbosity As %Integer = 0, StartZD As %Integer = 0, EndZD As %Integer = 0)

Generate a report that analyses the data that has been previously captured by the application monitor.

By default the report will include all samples from the table and will simply return a value that is the recommended size of SMH expressed in Kilobytes, which is calculated as the sum of the peak usage of all the shared memory heap consumers with a growth value added (2MB per CPU).

Verbosity The verbosity of the display to the screen, where 0 is the minimum verbosity (no output), 1 displays a summary and 2 displays a breakdown of the different consumers.

StartZD By default the report will include all samples found, but by passing a value here in internal date format, the report will only start from that date

EndZD By default the report will continue until the final sample at the last time and date is found. By passing a value here, which is a date in internal format, the report will stop its analysis at the end of this date.

UsageQueryExecute

ClassMethod UsageQueryExecute(ByRef qHandle As %Binary, StartZD As %String = "") As %Status [ Internal ]

Query the shared memory heap data and return a single data for each sample. The data returned is the total for this sample.

UsageQueryFetch

ClassMethod UsageQueryFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ Internal ]

UsageQueryClose

ClassMethod UsageQueryClose(ByRef qHandle As %Binary) As %Status [ Internal ]

UsageQuerySMIDExecute

ClassMethod UsageQuerySMIDExecute(ByRef qHandle As %Binary, StartZD As %String = "") As %Status [ Internal ]

Query the shared memory heap data and return a data row for each consumer for each sample. Therefore the data returned reflects a single consumer of shared memory heap, and you will need multiple data rows returned for a full sample.

UsageQuerySMIDFetch

ClassMethod UsageQuerySMIDFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ Internal ]

UsageQuerySMIDClose

ClassMethod UsageQuerySMIDClose(ByRef qHandle As %Binary) As %Status [ Internal ]

Demo

ClassMethod Demo(Days As %Integer = 1, Interval As %Integer = 300) As %Integer

Create some data for demonstration purposes.

By default this method will create data for a single day assuming a sample interval of 300 seconds, hence it will generate (86400/300) samples.

The method works by finding the current usage of shared memory heap, and then for every sample will randomly increase or decrease the shared memory heap usage for a single consumer, with a bias towards gradually increasing the total SMH usage.

Warning: This will delete all existing data for SMH analysis

SetPurge

ClassMethod SetPurge(Keep As %Integer = 0)

Set the system parameter for the number of days of sample data to keep.

Initial system default is 7 days. Return value is the previous setting, and executing this method with a "" argument will return the current setting without modifying it.

Purge

ClassMethod Purge(DaysKeep As %Integer = 0) As %Integer

Purge SharedMemoryData interval data, keeping the last 'DaysKeep' days.

This is typically called at the start of each day from the %Monitor.System.HistorySys class, using the current system default for 'Keep' (see the SetPurge() method). The 'DaysKeep' argument allows you to over ride the system default , a value of "0" or "" uses the system default, and a value of -1 deletes everything.

Returns the number of entries purged.