Maison  >  Article  >  développement back-end  >  Introduction détaillée aux exemples de code de compteurs de performances pour la surveillance des performances du serveur C#

Introduction détaillée aux exemples de code de compteurs de performances pour la surveillance des performances du serveur C#

黄舟
黄舟original
2017-03-14 14:01:073022parcourir

L'article précédent "Surveillance des performances du serveur - WMI" a introduit l'acquisition des performances du serveur via une communication à distance (bien sûr, il peut également être utilisé localement), donc cet article parle principalement de la fonction de surveillance des performances fournie avec le système Windows- ----> ;perpourmancecouonter.

Ouvrez l'outil de gestion-->Performances, nous pouvons immédiatement voir le tableau de tendance du CPU du serveur, le temps d'exécution du processus, capacité du disque et autres paramètres de performances. Cependant, il ne s'agit pas seulement de ces éléments, nous pouvons visualiser d'autres indicateurs de performance en ajoutant des outils techniques :

Si vous dites, c'est trop gênant de voir les choses de cette façon, OK, on ​​passe C# retire ces valeurs et les utilise pour implémenter son propre suivi des performances :

1 Ajouter une référence :

using System.Diagnostics;
2. Créer et instancier des performances

Compteurer

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.

Constructeur

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. valeur

    获取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
Bien sûr, en voici seulement quelques-uns, mais en utilisant la même méthode, nous pouvons obtenir plus de performances et de conditions de fonctionnement des processus, mais une chose à noter est que les données obtenues doivent être obtenu par le service Windows À condition, bien sûr, nous pouvons également écrire nous-mêmes certains services Windows et les ajouter au compteur de performances du système, ce qui est également très pratique pour .net.

Et si c'est plus pratique que WMI ?~~

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn