如何查看 Windows Server 2008 上的 CPU 负载

如何查看 Windows Server 2008 上的 CPU 负载

这其实是一个简单的问题,我想检查CPU Load我的 Windows Server 2008 机器。这个值会报告给 Zabbix,但我不知道 Zabbix 从哪里获取这个值。

我在服务器上能找到的只有 CPU 使用率、处理器时间等,但没有load。在 Zabbix 中,该值始终介于 0 到 4 之间,我知道它的含义(处于“正在运行”或“可运行”状态的进程数),但不知道在哪里检查服务器本身的值。

答案1

我们都遇到过这种情况。请这样做。转到您正在监控的 Windows 计算机。打开 CMD 提示符并键入 typeperf -qx > perfounter.txt 这将生成一个相当大的文件,其中包含您可以在 Zabbix 中为该特定计算机使用的所有性能计数器。有些项目将在该操作系统/版本中全局使用,而有些项目将只在该计算机中独有。

现在您有了性能计数器列表,您需要在 Zabbix 前端为该主机输入它们。(好吧,无论如何,您想要监控的那些)

在此示例中,为 CPU 空闲时间创建一个项目。此项目在几乎所有 Windows 平台上都可能相同,因此让我们在 Windows 模板下创建此项目,然后它将可供所有分配了该模板的主机使用。转到配置 --> 项目,然后使用右上角的下拉框,选择组 --> 模板,然后选择主机 --> 模板窗口。

现在,单击“创建项目”并输入您在下面的第一个屏幕截图中看到的信息。由于您无法在该屏幕截图中看到所有密钥,因此这里是:perf_counter[\Processor(_Total)\% Idle Time]。

请注意,如果您使用活动代理,则 Zabbix 中的主机名必须与主机上的 zabbix_agentd.conf 文件中的“Hostname=”字段完全匹配,否则它将不起作用。

这就是全部内容了。添加该项目后,等待一两分钟即可激活。如果显示“不支持”,则表示存在某种语法错误。

如果您运行 typeperf 命令而系统找不到它,您很可能可以从您拥有的几乎任何 Server 2003 系统上获取它。您可以将其复制到任何其他 Win OS,例如 WIndows 2000。

我发现其他一些有用的性能计数器键包括:perf_counter[\Processor(_Total)\% User Time] perf_counter[\Processor(_Total)\% Privileged Time] perf_counter[\System\Processor Queue Length] perf_counter[\Paging File(_Total)\% Usage]

您还可以绘制给定进程使用的 CPU 数量。例如,这是 zabbix_agentd 进程使用多少用户时间的关键:perf_counter[\Process(zabbix_agentd)\% User Time]

这些都将包含在您生成的性能计数器文本文件中。生成时正在运行的任何进程(例如 zabbix_agentd)都将具有语法,然后您可以将其输入到 Zabbix 中进行监控。

现在,除非所有服务器都使用完全相同的 NIC,否则跨 NIC 卡的流量对于每台服务器来说都是独一无二的。因此,您需要在主机级别而不是模板级别创建该项,其键值应如下所示:perf_counter[\Network Interface(HP NC7782 Gigabit Server Adapter)\Bytes Received/sec]

参考 :https://www.zabbix.com/forum/showthread.php?t=14297

问候,Ram

http://windowssaint.blogspot.com/

相关内容