a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

利用windows性能計數器進行服務器性能監控示例分享

2020-01-24 02:55:33
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Threading;
using System.Management;
using System.Runtime.InteropServices;
using System.Data;
using System.Data.SqlClient;
using System.DirectoryServices;
using System.Collections;
using System.Configuration;
using System.Collections.Specialized;
using System.IO;

namespace MON.Client
{
    public static class SysInfo
    {
        static Dictionary<string, PerformanceCounter> dic;
        static double DiskUsePercent;
        static double SysDiskUsePercent;
        static SysInfo()
        {
            try
            {
                dic = new Dictionary<string, PerformanceCounter>();
                foreach (string setting in ConfigurationManager.AppSettings)
                {
                    var arr = ConfigurationManager.AppSettings[setting].Split('#');
                    if (arr[arr.Length - 1] == "IsCounter")
                    {
                        try
                        {
                            var pc = new PerformanceCounter(arr[0], arr[1], arr[2]);
                            dic.Add(setting, pc);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(arr[0] + "找不到");
                            Log.WriteLog(ex.Message);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Log.WriteLog(ex.Message);
            }
        }
        static void initDiskInfo()
        {
            #region 備忘
            //只獲取系統盤代碼如下
            //ManagementObject CPANInfo = new ManagementObject(string.Format("win32_logicaldisk.deviceid=/"{0}/"", System.Environment.SystemDirectory.Substring(0, 2)));
            //CPANInfo.Get();
            //var s = Convert.ToDouble(CPANInfo["Size"]);
            //var l = Convert.ToDouble(CPANInfo["FreeSpace"]);
            //var d = (s - l) / s * 100;
            //return d;
            #endregion
            try
            {
                DriveInfo[] drives = DriveInfo.GetDrives();
                long totalSize = 0;
                long freeSize = 0;
                long CTotalSize = 0;
                long CFreeSize = 0;
                foreach (DriveInfo drive in drives)
                {
                    if (drive.DriveType == DriveType.CDRom)
                    {
                        continue;
                    }
                    totalSize += drive.TotalSize;
                    freeSize += drive.TotalFreeSpace;
                    if (drive.Name.StartsWith(System.Environment.SystemDirectory.Substring(0, 2)))
                    {
                        CTotalSize += drive.TotalSize;
                        CFreeSize += drive.TotalFreeSpace;
                    }
                }
                SysDiskUsePercent = (CTotalSize - CFreeSize) / (double)CTotalSize * 100;
                DiskUsePercent = (totalSize - freeSize) / (double)totalSize * 100;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Log.WriteLog(ex.Message);
            }
        }
        public static void Init()
        {
            //如有取數之前進行的業務可放在這里,提高性能
            initDiskInfo();
        }
        public static double GetSysInfo(string InfoKey)
        {
            try
            {
                if (dic.ContainsKey(InfoKey))
                {
                    return dic[InfoKey].NextValue();
                }
                else
                {
                    if (InfoKey == "SysDiskUsePercent")
                    {
                        return SysDiskUsePercent;
                    }
                    else if (InfoKey == "DiskUsePercent")
                    {
                        return DiskUsePercent;
                    }
                    else
                    {
                        return -1;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Log.WriteLog(ex.Message);
                return -1;
            }
        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩中文字幕一区二区 | 久久久久久免费 | 91精品国产综合久久久久久丝袜 | 亚洲福利视频在线 | 五月婷婷导航 | 蜜臀av性久久久久av蜜臀妖精 | 日韩二区三区 | 91精品国产一区二区 | 干中文字幕 | 久久在线| 国产精品久久久久久久久久妞妞 | 久久伦理电影网 | 国产精品黄网站在线观看 | 99久久日韩精品视频免费在线观看 | 久久久123| 99热日本| 成人看片免费网站 | 国产精品久久久久久福利一牛影视 | 亚洲视频1区 | 成年无码av片在线 | 国产在线国偷精品产拍 | 99久久久99久久国产片鸭王 | 成人欧美一区二区三区在线播放 | 久久高清 | 亚洲国产成人精品女人 | 成人一区二区三区在线 | 欧美激情视频一区二区三区在线播放 | 久久精品网 | 日日躁夜夜躁白天躁晚上躁91 | 视频国产在线 | 黄网站涩免费蜜桃网站 | www.一区二区 | 欧美日韩中文国产一区发布 | 欧美一区二区三区四区在线观看 | 一区不卡| 国产精品一区在线看 | 亚洲综合一区二区三区 | 中文字幕a视频 | 国产日韩在线视频 | 国产偷自视频区视频 | 在线观看免费毛片视频 |