Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in Codebeispiele von Leistungsindikatoren für die Leistungsüberwachung von C#-Servern

Detaillierte Einführung in Codebeispiele von Leistungsindikatoren für die Leistungsüberwachung von C#-Servern

黄舟
黄舟Original
2017-03-14 14:01:072960Durchsuche

Im vorherigen Artikel „Serverleistungsüberwachung – WMI“ wurde die Erfassung der Serverleistung über Remote-Com vorgestellt (natürlich kann sie auch lokal verwendet werden). In diesem Artikel geht es daher hauptsächlich um die Leistungsüberwachungsfunktion, die mit dem Windows-System ausgestattet ist. ----> ;perfürmancecouonter.

Öffnen Sie das Verwaltungstool -> Leistung. Wir können sofort das Trenddiagramm der CPU des Servers, der Prozesslaufzeit usw. sehen. Festplattenkapazität und andere Leistungsparameter. Es sind jedoch nicht nur diese Elemente, wir können auch andere Leistungsindikatoren anzeigen, indem wir technische Tools hinzufügen:

Wenn Sie sagen, es ist zu mühsam, es so zu betrachten, OK, wir übergeben C# nimmt diese Werte heraus und verwendet sie, um seine eigene Leistungsüberwachung zu implementieren:

1 Fügen Sie eine -Referenz hinzu:

using System.Diagnostics;

2. Leistung erstellen und instanziierenZähler

public static System.Diagnostics.PerformanceCounter pc= new System.Diagnostics.PerformanceCounter();
public static System.Diagnostics.PerformanceCounter pcm= new System.Diagnostics.PerformanceCounter();
public static System.Diagnostics.PerformanceCounter pcb= new System.Diagnostics.PerformanceCounter();
public static System.Diagnostics.PerformanceCounter pcc= new System.Diagnostics.PerformanceCounter();
//我们用四个对象做不同的操作,注意:是static的,不然每次取出的数据都是初始值,如cpu利用率就是0
3.

Konstruktor

static CapabilityScout()
...{
pc.CategoryName = "Processor";
pc.CounterName = "% Processor Time";
pc.InstanceName = "_Total";
pc.MachineName = ".";
pcm.CategoryName = "Memory";
pcm.CounterName = "% Committed Bytes In Use";
pcm.MachineName = ".";
pcb.CategoryName = "Windows Media Unicast Service";
pcb.CounterName = "Allocated Bandwidth";
pcb.MachineName = ".";
pcc.CategoryName = "Windows Media Unicast Service";
pcc.CounterName = "Connected Clients";
pcc.MachineName = ".";
}
4 Wert

    获取CPU利用率#region 获取CPU利用率
        public static string getCpuUsage()
        ...{
            string used = pc.NextValue().ToString();
            return used;
        }
        #endregion
        获取内存使用率#region 获取内存使用率
        public static string getMemory()
        ...{
            float used = pcm.NextValue();
            return used.ToString();
        }
        #endregion
        获取WMS连接数#region 获取WMS连接数
        public static string getConnectedCount()
        ...{
            string count = pcc.NextValue().ToString();
            return count;
        }
        #endregion
        获取网络流量#region 获取网络流量
        public static string getServerBandWidth()
        ...{
            string bandwidth = pcb.NextValue().ToString();
            return bandwidth;
        }
        #endregion
Natürlich sind hier nur einige davon, aber mit der gleichen Methode können wir mehr Leistung und Prozesslaufbedingungen erzielen, aber es ist zu beachten, dass die erhaltenen Daten sein müssen Wird vom Windows-Dienst bereitgestellt. Natürlich können wir einige Windows-Dienste auch selbst schreiben und zum Systemleistungszähler hinzufügen, was auch für .net sehr praktisch ist.

Wie wäre es im Vergleich zu WMI? Haha~~

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in Codebeispiele von Leistungsindikatoren für die Leistungsüberwachung von C#-Servern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn