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.