WindowsサーバでCPUロードアベレージを監視する2つの方法を比較してみた

WindowsサーバでCPUロードアベレージを監視する2つの方法を比較してみた

はじめに

WindowsサーバのCPUロードアベレージを監視するには、Zabbixエージェントを使います。

 

2つの方法がありますので、それぞれどのような違いがでるのか検証してみました。
・system.cpu.load
・perf_counter

環境

OS:CentOS 8.2.2004
Apache:2.4.37
PHP:7.2.25
MariaDB:10.3.17
Zabbix Server:5.0.2
Zabbix Agent:5.0.2

操作手順

Zabbixの管理コンソールにサインインします。

 

テンプレートを作成する

左サイドバーから [設定] - [テンプレート] をクリックします。
「テンプレートの作成」ボタンをクリックします。
以下の通り入力します。
テンプレート名:T_CPU_12
グループ:Templates
「追加」ボタンをクリックします。

 

アイテムを作成する

テンプレートの「アイテム」をクリックします。
WindowsサーバでCPUロードアベレージを監視する2つの方法を比較してみた

 

system.cpu.loadを使用する

右上の「アイテムの作成」ボタンをクリックします。
アイテムの作成画面では、監視したい項目に合わせて設定します。
名前:CPUロードアベレージ(1m)
タイプ:Zabbixエージェント
キー:system.cpu.load[,avg1]
データ型:数値(浮動小数)
監視間隔:1m
アプリケーション:CPU
「追加」ボタンをクリックします。

 

 

perf_counterを使用する

右上の「アイテムの作成」ボタンをクリックします。
アイテムの作成画面では、監視したい項目に合わせて設定します。
名前:CPUロードアベレージ_PerformanceCounter
タイプ:Zabbixエージェント
キー:perf_counter[\System\Processor Queue Length]
データ型:数値(浮動小数)
監視間隔:1m
アプリケーション:CPU
「追加」ボタンをクリックします。

 

テンプレートをホストにリンクする

左サイドバーから [設定] - [ホスト] をクリックします。
作成したテンプレートをリンクするホストを選択します。ここでは「WindowsServer2019」を選択しています。
「テンプレート」をクリックします。
新規テンプレートをリンク欄で、「T_CPU_12」をリンクします。

動作確認

[監視データ]-[最新データ]をクリックします。
ホストは「WindowsServer2019」を選択し、「適用」ボタンをクリックします。

 

CPUロードアベレージが取得できています。
WindowsサーバでCPUロードアベレージを監視する2つの方法を比較してみた

 

複数のアプリを起動し負荷をかけて変動を見てみました。
WindowsサーバでCPUロードアベレージを監視する2つの方法を比較してみた

 

Windows OSの「Processor Queue Length」カウンタでは、実行中のプロセスは除外されるので、少し値が低くなります。グラフ上でも確認できますね。ただし、データの取得タイミングによっては逆転していることがあります。

トップへ戻る