private void SetPerformanceInfo(PerformanceRecord Record) { isLoading = true; if (objectMode == ObjectModes.Server) { var cpu_busy_current = Record.Value1; var io_busy_current = Record.Value2; var current_read = Record.Value3; var current_write = Record.Value4; var connections_current = Record.Value7; var io_busy_total = Record.Value8; txtPerformanceIO.Text = string.Format("{0} / {1}", io_busy_total, io_busy_current); var cpu_busy_total = Record.Value9; txtPerformanceCPU.Text = string.Format("{0} / {1}", cpu_busy_total, cpu_busy_current); var total_read = Record.Value10; txtPerformanceRead.Text = string.Format("{0} / {1}", total_read, current_read); var total_write = Record.Value11; txtPerformanceWrite.Text = string.Format("{0} / {1}", total_write, current_write); var packets_received_total = Record.Value12; var packets_sent_total = Record.Value13; txtPerformancePackets.Text = string.Format("{0} / {1}", packets_received_total, packets_sent_total); var connections_total = Record.Value14; txtPerformanceConnections.Text = string.Format("{0} / {1}", connections_total, connections_current); } else { var dbIsStall = Record.Value13; var dbNumberReads = Record.Value1; var dbBytesRead = Record.Value2; var dbNumberWrites = Record.Value3; var dbBytesWritten = Record.Value4; var dbStartDate = Record.Value16; var dbFileCount = Record.Value15; var logIsStall = Record.Value14; var logNumberReads = Record.Value7; var logBytesRead = Record.Value8; var logNumberWrites = Record.Value9; var logBytesWritten = Record.Value10; txtPerformanceCPU.Text = dbStartDate.ToString(); txtPerformanceIO.Text = string.Format("{0} / {1}", dbIsStall, logIsStall); ResetPerformanceIO(); if (dbIsStall >= QueryEngine.DBStallThreshold || logIsStall >= QueryEngine.DBStallThreshold) { txtPerformanceIO.BackColor = Color.Red; ttInfo.SetToolTip(txtPerformanceIO, "Potential performance bottleneck due to hard disk IO delay, check using database analysis."); llPerformanceIO.Enabled = true; } txtPerformanceRead.Text = string.Format("{0} / {1}", dbNumberReads, Utils.FormatSize(dbBytesRead)); txtPerformanceWrite.Text = string.Format("{0} / {1}", dbNumberWrites, Utils.FormatSize(dbBytesWritten)); txtPerformancePackets.Text = string.Format("{0} / {1}", logNumberReads, Utils.FormatSize(logBytesRead)); txtPerformanceConnections.Text = string.Format("{0} / {1}", logNumberWrites, Utils.FormatSize(logBytesWritten)); } if (Record.Value16 > DateTime.MinValue) { dtpPerformanceStartDate.Value = Record.Value16; } isLoading = false; }
private void AddPerformanceHistoryRecord(PerformanceRecord Record, DateTime Date, DateTime Min, DateTime Max) { if (objectMode == ObjectModes.Server) { var cpu_busy_current = Record.Value1; var io_busy_current = Record.Value2; var current_read = Record.Value3; var current_write = Record.Value4; var packets_received_current = Record.Value5; var packets_sent_current = Record.Value6; var connections_current = Record.Value7; Series cpu; Series io; Series read; Series write; Series packets_sent; Series packets_received; Series connections; if (chPerformance.Series.Count == 0) { chPerformance.ChartAreas[0].AxisX.Minimum = Min.ToOADate(); chPerformance.ChartAreas[0].AxisX.Maximum = Max.ToOADate(); cpu = AddPerformanceSerie("CPU", Color.Green); io = AddPerformanceSerie("IO", Color.Blue); read = AddPerformanceSerie("Read", Color.Red); write = AddPerformanceSerie("Write", Color.Salmon); packets_received = AddPerformanceSerie("Packet Received", Color.Tan); packets_sent = AddPerformanceSerie("Packet Sent", Color.Pink); connections = AddPerformanceSerie("Connections", Color.Yellow); } else { cpu = chPerformance.Series[0]; io = chPerformance.Series[1]; read = chPerformance.Series[2]; write = chPerformance.Series[3]; packets_received = chPerformance.Series[4]; packets_sent = chPerformance.Series[5]; connections = chPerformance.Series[6]; } AddPerformanceValue(Date, cpu, cpu_busy_current); AddPerformanceValue(Date, io, io_busy_current); AddPerformanceValue(Date, read, current_read); AddPerformanceValue(Date, write, current_write); AddPerformanceValue(Date, packets_received, packets_received_current); AddPerformanceValue(Date, packets_sent, packets_sent_current); AddPerformanceValue(Date, connections, connections_current); } else { var dbCurrentNumberReads = Record.Value5; var dbCurrentNumberWrites = Record.Value6; long logCurrentNumberReads = Record.Value11; long logCurrentNumberWrites = Record.Value12; Series dbReads; Series dbWrites; Series logReads; Series logWrites; if (chPerformance.Series.Count == 0) { chPerformance.ChartAreas[0].AxisX.Minimum = Min.ToOADate(); chPerformance.ChartAreas[0].AxisX.Maximum = Max.ToOADate(); dbReads = AddPerformanceSerie("DB Read", Color.Red); dbWrites = AddPerformanceSerie("DB Write", Color.Salmon); logReads = AddPerformanceSerie("Log Read", Color.Green); logWrites = AddPerformanceSerie("Log Write", Color.Blue); } else { dbReads = chPerformance.Series[0]; dbWrites = chPerformance.Series[1]; logReads = chPerformance.Series[2]; logWrites = chPerformance.Series[3]; } AddPerformanceValue(Date, dbReads, dbCurrentNumberReads); AddPerformanceValue(Date, dbWrites, dbCurrentNumberWrites); AddPerformanceValue(Date, logReads, logCurrentNumberReads); AddPerformanceValue(Date, logWrites, logCurrentNumberWrites); } }