persistent class SYS.History.SharedMemoryData
extends %Persistent, %XML.Adaptor
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".
as %Integer [ SqlFieldName = Allocated ];
Shared Memory Allocated
as %Integer [ SqlFieldName = Available ];
Shared Memory Available
as %Integer [ SqlFieldName = GSTUsed ];
General String Table Used
Length of sample in seconds
as array of SYS.History.SharedMemoryUsage;
System usage metrics
as %Integer [ SqlFieldName = SMTUsed ];
Static Memory Table Used
as %Integer [ SqlFieldName = TotalGSTSMTAllocated ];
Total GST and SMT allocated
as %Integer [ SqlFieldName = TotalUsed ];
Total Memory used
as %Integer [ SqlFieldName = Used ];
Shared Memory Used
UTC date key
UTC time key
classmethod Demo(Days As %Integer = 1, Interval As %Integer = 300)
classmethod Purge(DaysKeep As %Integer = 0)
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
classmethod Report(Verbosity As %Integer = 0, StartZD As %Integer = 0, EndZD As %Integer = 0)
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.
classmethod SetPurge(Keep 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.
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.
DateTime As %TimeStamp, ZDATE As %Integer, ZTIME As %Integer, Allocated As %Integer, Available As %Integer, Used As %Integer, SMTUsed As %Integer, GSTUsed As %Integer, TotalUsed As %Integer
Query the shared memory heap data and return a single data for each sample. The data returned
is the total for this sample.
DateTime As %TimeStamp, ZDATE As %Integer, ZTIME As %Integer, ConsumerName As %String, ConsumerID As %Integer, Allocated As %Integer, Available As %Integer, Used As %Integer, SMTUsed As %Integer, GSTUsed As %Integer, TotalUsed As %Integer
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.
index (ZDTindex on ZDATE,ZTIME) [IdKey];