private Tuple <string, float>[] GetOverallCounterValues(NormalizedNbCounterData counterData, string ctr0, string ctr1, string ctr2, string ctr3) { Tuple <string, float>[] retval = new Tuple <string, float> [4]; retval[0] = new Tuple <string, float>(ctr0, counterData.ctr0); retval[1] = new Tuple <string, float>(ctr1, counterData.ctr1); retval[2] = new Tuple <string, float>(ctr2, counterData.ctr2); retval[3] = new Tuple <string, float>(ctr3, counterData.ctr3); return(retval); }
private NormalizedNbCounterData UpdateNbPerfCounterData() { float normalizationFactor = GetNormalizationFactor(monitoringThread); ulong ctr0 = ReadAndClearMsr(MSR_NB_PERF_CTR_0); ulong ctr1 = ReadAndClearMsr(MSR_NB_PERF_CTR_1); ulong ctr2 = ReadAndClearMsr(MSR_NB_PERF_CTR_2); ulong ctr3 = ReadAndClearMsr(MSR_NB_PERF_CTR_3); NormalizedNbCounterData counterData = new NormalizedNbCounterData(); counterData.ctr0 = ctr0 * normalizationFactor; counterData.ctr1 = ctr1 * normalizationFactor; counterData.ctr2 = ctr2 * normalizationFactor; counterData.ctr3 = ctr3 * normalizationFactor; return(counterData); }
public MonitoringUpdateResults Update() { MonitoringUpdateResults results = new MonitoringUpdateResults(); NormalizedNbCounterData counterData = dataFabric.UpdateNbPerfCounterData(); results.unitMetrics = new string[3][]; results.unitMetrics[0] = new string[] { "Sized Read", FormatLargeNumber(counterData.ctr0) }; results.unitMetrics[1] = new string[] { "Posted Sized Write", FormatLargeNumber(counterData.ctr1) }; results.unitMetrics[2] = new string[] { "Non-Posted Sized Write", FormatLargeNumber(counterData.ctr2) }; float totalReqs = counterData.ctr0 + counterData.ctr1 + counterData.ctr2; results.overallMetrics = new string[] { "Overall", FormatLargeNumber(totalReqs) }; results.overallCounterValues = dataFabric.GetOverallCounterValues(counterData, "SzRd", "Posted SzWr", "Non-Posted SzWr", "Unused"); return(results); }
public MonitoringUpdateResults Update() { MonitoringUpdateResults results = new MonitoringUpdateResults(); NormalizedNbCounterData counterData = dataFabric.UpdateNbPerfCounterData(); results.unitMetrics = new string[4][]; results.unitMetrics[0] = new string[] { "CPU to Mem", FormatLargeNumber(counterData.ctr0) }; results.unitMetrics[1] = new string[] { "CPU to IO", FormatLargeNumber(counterData.ctr1) }; results.unitMetrics[2] = new string[] { "IO to Mem", FormatLargeNumber(counterData.ctr2) }; results.unitMetrics[3] = new string[] { "IO to IO", FormatLargeNumber(counterData.ctr3) }; float totalReqs = counterData.ctr0 + counterData.ctr1 + counterData.ctr2; results.overallMetrics = new string[] { "Overall", FormatLargeNumber(totalReqs) }; results.overallCounterValues = dataFabric.GetOverallCounterValues(counterData, "CPU to Mem", "CPU to IO", "IO to Mem", "IO to IO"); return(results); }
public MonitoringUpdateResults Update() { MonitoringUpdateResults results = new MonitoringUpdateResults(); NormalizedNbCounterData counterData = dataFabric.UpdateNbPerfCounterData(); results.unitMetrics = new string[4][]; results.unitMetrics[0] = new string[] { "Read Block/Read Block Modified", FormatLargeNumber(counterData.ctr1 * 64) + "B/s", FormatLargeNumber(counterData.ctr1) }; results.unitMetrics[1] = new string[] { "Read Block Shared", FormatLargeNumber(counterData.ctr2 * 64) + "B/s", FormatLargeNumber(counterData.ctr2) }; results.unitMetrics[2] = new string[] { "Victim Block (Writeback)", FormatLargeNumber(counterData.ctr3 * 64) + "B/s", FormatLargeNumber(counterData.ctr3) }; results.unitMetrics[3] = new string[] { "Change-to-Dirty", FormatLargeNumber(counterData.ctr0 * 64) + "B/s", FormatLargeNumber(counterData.ctr0) }; float totalReqs = counterData.ctr1 + counterData.ctr2 + counterData.ctr3; results.overallMetrics = new string[] { "Overall", FormatLargeNumber(totalReqs * 64) + "B/s", FormatLargeNumber(totalReqs) }; results.overallCounterValues = dataFabric.GetOverallCounterValues(counterData, "Change-To-Dirty", "Read Block/Modified", "Read Block Shared", "Victim Block"); return(results); }
public MonitoringUpdateResults Update() { MonitoringUpdateResults results = new MonitoringUpdateResults(); NormalizedNbCounterData counterData = dataFabric.UpdateNbPerfCounterData(); results.unitMetrics = new string[4][]; results.unitMetrics[0] = new string[] { "Page Hit", FormatLargeNumber(counterData.ctr0 * 64) + "B/s", FormatLargeNumber(counterData.ctr0) }; results.unitMetrics[1] = new string[] { "Page Miss", FormatLargeNumber(counterData.ctr1 * 64) + "B/s", FormatLargeNumber(counterData.ctr1) }; results.unitMetrics[2] = new string[] { "Page Conflict", FormatLargeNumber(counterData.ctr2 * 64) + "B/s", FormatLargeNumber(counterData.ctr2) }; results.unitMetrics[3] = new string[] { "MC Page Table Overflow", FormatLargeNumber(counterData.ctr3 * 64) + "B/s", FormatLargeNumber(counterData.ctr3) }; float totalReqs = counterData.ctr0 + counterData.ctr1 + counterData.ctr2; results.overallMetrics = new string[] { "Overall", FormatLargeNumber(totalReqs * 64) + "B/s", FormatLargeNumber(totalReqs) }; results.overallCounterValues = dataFabric.GetOverallCounterValues(counterData, "Page Hit", "Page Miss", "Page Conflict", "Page Table Overflow"); return(results); }
public MonitoringUpdateResults Update() { MonitoringUpdateResults results = new MonitoringUpdateResults(); NormalizedNbCounterData counterData = dataFabric.UpdateNbPerfCounterData(); results.unitMetrics = null; float l3Hits = counterData.ctr0 - counterData.ctr1; results.overallMetrics = new string[] { "Overall", FormatPercentage(l3Hits, counterData.ctr0), FormatLargeNumber(64 * l3Hits) + "B/s", FormatLargeNumber(64 * counterData.ctr2) + "B/s", FormatLargeNumber(64 * counterData.ctr3) + "B/s", FormatLargeNumber(64 * (l3Hits + counterData.ctr2 + counterData.ctr3)) + "B/s" }; results.overallCounterValues = dataFabric.GetOverallCounterValues(counterData, "L3 Read Request", "L3 Miss", "L3 Fill", "L3 Eviction, Modified"); return(results); }