伺服器效能監控之WMI
1.WMI簡介
WMI是英文Windows Management Instrumentation的簡寫,通過使用WMI,我們可以獲取本地或遠端伺服器的效能引數和程序執行情況,以及大部分硬體資訊,但前提是執行的使用者要有足夠的許可權,如administrator組使用者等。這也是做負載均衡所需要且比較方便快捷的途徑。
2.使用時首先新增System.Management.dll,然後引用
...{
private static System.Management.ConnectionOptions Conn = new
private static ManagementObjectSearcher mos = new ManagementObjectSearcher();
private string username = "";
private string pwd = "";
private string space="";
private string server = "";
public ManagementConnectPool(string mpusername,string
...{
this.username = mpusername;
this.pwd = mppwd;
this.space = mpspace;
this.server = mpserver;
Conn.Username = mpusername;
Conn.Password = mppwd;
string scopestring ="//" + mpserver + mpspace;
Ms.Connect();
mos.Scope = Ms;
}
public ManagementObjectCollection getQueryResult(string queryString)
...{
ObjectQuery oq = new ObjectQuery();
oq.QueryString = queryString;
mos.Query = oq;
ManagementObjectCollection moc =mos.Get();
return moc;
}
}
4.獲取CPU,記憶體,網路流量等資訊
public class Monitor...{
private string username = "";
private string pwd ="";
private string ip = "";
ManagementConnectPool mcp;
WMSServerClass server;
public Monitor(string username,string pwd,string ip)...{
this.username = username;
this.pwd = pwd ;
this.ip = ip;
mcp = new ManagementConnectPool(username,pwd,"/root/cimv2",ip);
server = new WMSServerClass();
}
WMI方式獲取網絡卡流量#region WMI方式獲取網絡卡流量
private void getNetWorkFlow()
...{
ManagementObjectCollection moc = mcp.getQueryResult(@"select * from Win32_NetworkAdapter where macaddress<>null and manufacturer<>'Microsoft'");
string[] list = new string[moc.Count] ;
foreach(System.Management.ManagementObject mymac in moc)
...{
string a = mymac["Speed"].ToString();//null WMI未實現該屬性
Console.WriteLine(a.ToString());
}
}
#endregion
WMI方式獲取CPU資訊#region WMI方式獲取CPU資訊
private void getCpuInfo()
...{
ManagementObjectCollection moc = mcp.getQueryResult("select * from Win32_Processor");
string[] list = new string[moc.Count];
int i = 0;
foreach(ManagementObject mo in moc)
...{
string total = mo.GetPropertyValue("LoadPercentage").ToString();
list[i]=total;
i++;
}
}
#endregion
WMI方式獲取記憶體使用率#region WMI方式獲取記憶體使用率
public string getMemoryUsage()
...{
ManagementObjectCollection moc = mcp.getQueryResult("select * from Win32_LogicalMemoryConfiguration");
int totalm = 1; int avilablem = 1;
foreach(ManagementObject mo in moc)
...{
string total = mo.GetPropertyValue("TotalPhysicalMemory").ToString();
totalm = int.Parse(total);
}
moc = mcp.getQueryResult("select * from Win32_PerfRawData_PerfOS_Memory");
foreach(ManagementObject mo in moc)
...{
string avilable = mo.GetPropertyValue("AvailableKBytes").ToString();
avilablem = int.Parse(avilable);
}
int usedm = totalm - avilablem;
double memoryusage = (double)usedm * (double)100 / (double)totalm ;
return memoryusage.ToString();
}
#endregion
}
5.獲取本地機器資訊(WEB)
1.如何用WMI獲得指定磁碟的容量#region 1.如何用WMI獲得指定磁碟的容量private string DriveType(string type)
...{
string rtntype="";
switch (type)
...{
case "1":
rtntype="Not Type";
break;
case "2":
rtntype="Floppy disk";
break;
case "3":
rtntype="Hard disk";
break;
case "4":
rtntype="Removable drive or network drive";
break;
case "5":
rtntype="CD-ROM";
break;
case "6":
rtntype="RAM disk";
break;
default :
break;
}
return rtntype;
}
private void Button1_Click(object sender, System.EventArgs e)
...{
SelectQuery query=new SelectQuery("Select * From Win32_LogicalDisk");
ManagementObjectSearcher searcher=new ManagementObjectSearcher(query);
foreach(ManagementBaseObject disk in searcher.Get())
...{
Response.Write(disk["Name"] +" "+DriveType(disk["DriveType"].ToString()) + " " + disk["VolumeName"]+"<br>");
}
}
#endregion
2.如何用WMI獲得指定磁碟的容量#region 2.如何用WMI獲得指定磁碟的容量
private void Button2_Click(object sender, System.EventArgs e)
...{
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid="c:"");
disk.Get();
Response.Write("Logical Disk Size = " + disk["Size"] + " bytes");
}
#endregion
3.如何列出機器中所有的共享資源#region 3.如何列出機器中所有的共享資源
private void Button3_Click(object sender, System.EventArgs e)
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_share");
foreach (ManagementObject share in searcher.Get())
...{
Response.Write(share.GetText(TextFormat.Mof));
}
}
#endregion
4.怎樣寫程控制讓系統中的某個資料夾共享或取消共享#region 4.怎樣寫程控制讓系統中的某個資料夾共享或取消共享
private void Button4_Click(object sender, System.EventArgs e)
...{
/**//*首先,這需要以有相應許可權的使用者登入系統才行
將
object[] obj = {"C:/Temp","我的共享",0,10,"Dot Net 實現的共享",""};
改為
object[] obj = {"C:/Temp","我的共享",0,null,"Dot Net 實現的共享",""};
就可以實現授權給最多使用者了。
*/
ManagementClass _class = new ManagementClass(new ManagementPath("Win32_Share"));
object[] obj = ...{"C:/Temp","我的共享",0,10,"Dot Net 實現的共享",""};
_class.InvokeMethod("create",obj);
}
#endregion
5.如何獲得系統服務的執行狀態#region 5.如何獲得系統服務的執行狀態
private void Button5_Click(object sender, System.EventArgs e)
...{
string[] lvData = new string[4];
ManagementObjectSearcher searcher =new ManagementObjectSearcher("SELECT * FROM Win32_Service");
foreach (ManagementObject mo in searcher.Get())
...{
lvData[0] = mo["Name"].ToString();
lvData[1] = mo["StartMode"].ToString();
if (mo["Started"].Equals(true))
lvData[2] = "Started";
else
lvData[2] = "Stop";
lvData[3] = mo["StartName"].ToString();
Response.Write(lvData[0]+lvData[1]+lvData[2]+lvData[3]);
}
}
#endregion
6.通過WMI修改IP,而實現不用重新啟動#region 6.通過WMI修改IP,而實現不用重新啟動
private void Button6_Click(object sender, System.EventArgs e)
...{
ReportIP();
相關推薦
伺服器效能監控之WMI
1.WMI簡介 WMI是英文Windows Management Instrumentation的簡寫,通過使用WMI,我們可以獲取本地或遠端伺服器的效能引數和程序執行情況,以及大部分硬體資訊,但前提是執行的使用者要有足夠的許可權,如administrator組使用者等。這也是做負載均衡所需要且比較方便快
伺服器效能監控之New Relic 入門教程
New Relic 是一個很強大的伺服器效能監控工具,New Relic目前專注於SaaS和App效能管理業務,它支援支援agen
效能監控之Telegraf+InfluxDB+Grafana伺服器實時監控
文章目錄 引言 目標 解決方案 Telegraf 整體設計 Telegraf&InfluxDB整合 下載安裝 建立influxDB使用者和資料庫
【nmon】伺服器效能監控工具nmon安裝和使用
目錄 一、檢視linux系統伺服器版本資訊 二、nmon下載 三、nmon安裝 四、安裝成功校檢 五、測試監控 六、監控資料採集 一、檢視linux系統伺服器版本資訊 (Linux檢視版本當前作業系統核心資訊):uname -a (Linux檢視當
CentOS 7 開啟 SNMP 實現伺服器效能監控
1、檢測是否有 SNMP 服務 service snmpd status 2、若沒有則安裝 yum install -y net-snmp 3、編輯 SNMP 的配置檔案,設定安全的驗證方式 vi /etc/snmp/snmpd.co
惠普-UX伺服器效能監控使用命令
1,iostat the iostat command reports I/O statistics for each active disk on the system iostat -t x y x表示間隔的時間,y表示間隔顯示的次數 這個命令一般用於檢視的引數是bps、sps、
效能監控之Telegraf+InfluxDB+Grafana NVIDIA GPU實時監控
文章目錄 什麼是GPU? 預備知識 window下如何使用NVIDIA-smi? Telegraf+InfluxDB+Grafana監控NVIDIA GPU 配置外掛 採集度量
效能監控之JMeter分散式壓測輕量日誌解決方案
文章目錄 引言 背景 Filebeat Elasticsearch Kibana 整體架構 日誌採集架構 安裝及配置 下載及配置ElasticSearch
Tomcat效能監控之Probe
目前採用java進行開發的系統居多,這些系統執行在java容器中,通過對容器的監控可以瞭解到java程序的執行狀況,分析java程式問題。目前市面上流行的中介軟體有很多(Tomcat、jetty、jboss、weblogic、websphere等),基本原理相似,都遵循Servlet規範。對容器的監控,實際
LR監控Linux系統伺服器效能監控指標詳解
一、常用監控指標: 從LR-System Resource Graphs裡面右鍵add measurement,填寫linux機器的IP, 出現所有unix/linux的計數器,包括cpu的,mem的,disk,network的。 幾個常用的監控指標: aver
伺服器效能監控工具軟體Nmon和ServerAgent對比
2018年01月08日 10:36:51 zwliu6 閱讀數:664 標籤: 伺服器效能監控對比 伺服器效能監控工具軟體Nmon和ServerAgent對比 軟體 Nmon+nmon_anal
5.11.6 jmeter元件-監聽器—伺服器效能監控PerfMon Metrics Collector
伺服器效能監控PerfMon Metrics Collector 在效能測試時,瞭解載入的伺服器的健康狀況是很重要的。使用.jp@gc - PerfMon Metrics Collector,你可以監視幾乎所有的平臺的CPU,記憶體,交換,磁碟I/O和網路I/O
C# 讀取windows效能計數器,實現伺服器效能監控
一、背景介紹 在.net平臺開發,網站部署環境都是windows+IIS,很想知道伺服器執行時,相關的各種引數。比如:CPU利用率,磁碟讀寫速度,網路頻寬佔用,網站連結數等等。能夠有圖表的方式顯示就更好了。 用過阿里雲的雲監控的童鞋,對下面這個介面肯定不會陌生:
阿里雲伺服器效能監控
我們把專案部署到伺服器後,我們關心一下伺服器的記憶體是否能撐起我們的專案,若專案部署完後記憶體都佔用90%以上,那就注意了,專案很容易被擠掉線。但我們怎麼檢視伺服器的效能呢,下面我們來說說。 開啟阿里雲控制檯 點選完成後進入例項詳情 可以清楚看到右邊會有各種
效能監控之tomcat,jvisualvm遠端連線tomcat配置
在tomcat/bin 中編輯catalina.sh 新增入這樣一段程式碼 ,新增的位置在 cygwin=false darwin=false os400=false 上面,在 JAVA_HOME=/
Jmeter使用plugins外掛進行伺服器效能監控
效能測試時,我們的關注點有兩部分 1 服務本身:併發 響應時間 QPS 2 伺服器的資源使用情況:cpu memory I/O disk等 JMeter的plugins外掛可以實現對"2"的監控,具體操作步驟如下(主要記錄我的實踐過程): 說明:我的jmeter版本是3.1 一
JMeter對伺服器效能監控--結果檢視和plugins外掛詳解(2)
首先申明,此篇文章借鑑出處:https://www.jianshu.com/p/ea36fef0a96b 引言 我們對被測應用進行效能測試時,除了關注吞吐量、響應時間等應用自身的表現外,對應用執行所涉及的伺服器資源的使用情況,也是非常重要的方面,通過實時監控,可以準確
伺服器效能監控javamelody配置使用
Documentation of JavaMelody Table of contents Introduction The goal of JavaMelody is to monitor Java or Java EE applicati
JMeter對伺服器效能監控--結果檢視和plugins外掛詳解
引言我們對被測應用進行效能測試時,除了關注吞吐量、響應時間等應用自身的表現外,對應用執行所涉及的伺服器資源的使用情況,也是非常重要的方面,通過實時監控,可以準確的把握不同測試場景下伺服器資源消耗情況的變化,對於應用效能分析有著重要的作用,同時也是調整測試場景設計的重要依據。對於使用JMeter執行效能測試的朋
Prometheus——進行伺服器效能監控的一件法寶
最近一直在思考如何對線上服務做深度監控。基礎的服務可用性監控很簡單,定期Ping即可。但是怎樣才能監控伺服器的一些更加關鍵的資料呢?比如,每一個API Point的請求次數(QPS),最大響應時間,平均響應時間等。最終我希望實現的效果是有一個Dashboard,我可以清楚地看