>백엔드 개발 >C#.Net 튜토리얼 >C# 서버 성능 모니터링을 위한 성능 카운터의 코드 예제에 대한 자세한 소개

C# 서버 성능 모니터링을 위한 성능 카운터의 코드 예제에 대한 자세한 소개

黄舟
黄舟원래의
2017-03-14 14:01:073061검색

이전 기사 "서버 성능 모니터링 - WMI"에서는 원격 통신을 통한 서버 성능 획득에 대해 소개했기 때문에(물론 로컬에서도 사용 가능), 이번 기사에서는 주로 Windows 시스템에 포함된 성능 모니터링 기능에 대해 이야기합니다- ----> ;performancecouonter.

관리 도구를 엽니다-->성능, 서버의 CPU, 프로세스 실행 시간, 디스크 용량 및 기타 성능 매개변수. 하지만 이러한 항목들만이 아니라 기술적인 도구를 추가하면 다른 성과 지표도 볼 수 있습니다.

이렇게 보면 너무 귀찮아서, 자, C#을 전달하여 이 값을 사용하여 자체 성능 모니터링을 구현합니다.

1 참조 추가:

using System.Diagnostics;

2. PerformanceCounter

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

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 = ".";
}

를 가져옵니다.

    获取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

물론 여기에는 일부분만 있지만 동일한 방법을 사용하면 더 많은 성능과 프로세스 실행 조건을 얻을 수 있습니다. 하지만 한 가지 주목할 점은 얻은 데이터는 Windows에서 제공되어야 한다는 것입니다. 물론, 일부 Windows 서비스를 작성하여 시스템 성능 카운터에 추가하는 것도 .net에 매우 편리합니다.

WMI에 비하면 어떤가요? ㅎㅎ~~

위 내용은 C# 서버 성능 모니터링을 위한 성능 카운터의 코드 예제에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.