public static MemoryCpu GetCPU() { MemoryCpu model = new MemoryCpu(); SimpleSnmp snmp = new SimpleSnmp("192.168.1.200", "public"); try { //获取运行内存 double TotalMemory = 0.0; //内存总大小 double UseMemory = 0.0; //内存使用大小 Dictionary <SnmpSharpNet.Oid, AsnType> TotalMemorys = snmp.Get(SnmpVersion.Ver2, new string[] { ".1.3.6.1.2.1.25.2.2.0" }); ////获取总内存大小 Dictionary <SnmpSharpNet.Oid, AsnType> UseMemorys = snmp.Walk(SnmpVersion.Ver2, ".1.3.6.1.2.1.25.2.3.1.6"); //使用内存大小 foreach (var item in TotalMemorys) { TotalMemory += double.Parse(item.Value.ToString()); } foreach (var item in UseMemorys) { UseMemory += double.Parse(item.Value.ToString()); } UseMemory = UseMemory / TotalMemory; //获取cpu负载 double TotalCPU = 0; Dictionary <SnmpSharpNet.Oid, AsnType> result = snmp.Walk(SnmpVersion.Ver2, ".1.3.6.1.2.1.25.3.3.1.2"); //查找内容大小.这个编号我是用mib browser查出来的 foreach (var item in result) { TotalCPU += double.Parse(item.Value.ToString()); } double RatioCPU = TotalCPU / result.Count;//获取比率 model.Cpu = RatioCPU.ToString() + "%"; model.Memory = (UseMemory * 100).ToString("F2") + "%"; } catch (Exception ee) { } return(model); }
public ActionResult GetCPU() { MessageInfo memory = new MessageInfo(); MemoryCpu model = SNMP_BLL.GetCPU(); #region 内存 //double capacity = 0.00; //double available = 0.00; ////获取总物理内存大小 //ManagementClass cimobject1 = new ManagementClass("Win32_PhysicalMemory"); //ManagementObjectCollection moc1 = cimobject1.GetInstances(); //foreach (ManagementObject mo1 in moc1) //{ // capacity += Math.Round(Int64.Parse(mo1.Properties["Capacity"].Value.ToString()) / 1024 / 1024.0, 1); // memory.CompanyFax = capacity.ToString(); //} //moc1.Dispose(); //cimobject1.Dispose(); ////获取内存可用大小 //ManagementClass cimobject2 = new ManagementClass("Win32_PerfFormattedData_PerfOS_Memory"); //ManagementObjectCollection moc2 = cimobject2.GetInstances(); //foreach (ManagementObject mo2 in moc2) //{ // available += Math.Round(Int64.Parse(mo2.Properties["AvailableMBytes"].Value.ToString()) / 1.0, 1); // memory.CompanyName = available.ToString(); //} //moc2.Dispose(); //cimobject2.Dispose(); //memory.CompanyQQ = (Math.Round((capacity-available) / capacity, 2) * 100).ToString() + "%"; //#endregion //#region CPU //PerformanceCounter _oPerformanceCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total"); //memory.ContactEmail = Math.Round(_oPerformanceCounter.NextValue(), 2).ToString() + "%"; #endregion return Json(new { data = model }, JsonRequestBehavior.AllowGet); }