2017-08-05

[ASP.NET] 偵測遠端主機 CPU 使用率都是0

近日寫了一個排程來監測多台 Server 的 CPU 使用率,一有狀況就用 LINE Notify 發通知,爬文很簡單就找到如何監測 CPU 使用率,大致如下:
PerformanceCounter cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total", [Server IP]);
string result = cpuCounter.NextValue().ToString();

但是經測試後,會發現取到的值永遠都是 0,剛開始認為是權限問題取不到,而一直往權限方向試了很久沒結果。

於是再將此問題爬文,發現要暫停一下再取第二次值才能取到,所以改成如下,如願取值成功,趕緊備忘下來:
PerformanceCounter cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total", [Server IP]);
string result = cpuCounter.NextValue().ToString();

//暫停一下再取一次值
System.Threading.Thread.Sleep(1000);
result = cpuCounter.NextValue().ToString();


參考來源:stackOverflow

沒有留言:

張貼留言