我有几个 Windows Server 2012 虚拟机,由 zabbix 2.4 监控。zabbix 会为某些虚拟机抛出“缺少可用交换空间”的错误,但这些机器上有可用的磁盘和内存,并且虚拟内存在 Windows 上设置为 OS 控制...
Windows Server 上的“缺少可用交换空间”是什么意思?是磁盘空间?RAM?还是虚拟内存?
我该如何解决?
谢谢。
答案1
我刚刚解决了我的项目中出现的相同错误。它与 Windows 页面文件有关,在我的例子中,它被配置为由 Windows 自动管理。
在我的情况中,Windows 认为它不需要更高的交换空间,也不会占用更多空间,但剩余空间为 0,因此 zabbix 报告了错误。我已选择移动到自定义页面文件大小 - 只需记住在保存之前点击设置,因为它在重启后不会一直保留。
系统 -> 高级系统设置 -> 高级选项卡 -> 性能设置 -> 高级选项卡,并更改为使用手动页面文件,而不是系统分配的页面文件
答案2
这是解决问题的一个办法。不幸的是,我们有许多 Windows 服务器,并且让 Windows 来管理它们的页面文件(交换空间)。
当 Windows 管理页面文件时,它会保持页面文件大小不变,有时甚至会填充 0 字节的空闲空间,直到某个程序请求更多内存,然后如果页面文件驱动器上有空间,它将增加页面文件的大小,从而提供更多的可用页面文件空间。
这会让“简单”的 Zabbix 警报变得混乱。例如,它看到一个 1.7GB 的页面文件,其中有 0 个字节可用,并发出警报。它没有看到 Windows 正在管理页面文件,并且驱动器有足够的磁盘空间可用于页面文件的增长。
如果 Zabbix 能够做到就太好了(伪代码如下):如果“Windows 正在管理页面文件”,则如果页面文件可用空间百分比低于阈值,并且包含页面文件的驱动器的可用空间小于第二个阈值,则抛出触发器(发送警报),否则# 假设驱动器上的页面文件大小固定,如果页面文件可用空间百分比低于阈值,则抛出触发器(发送警报)FI
这种触发器的复杂性超出了我的 Zabbix 技能等级。如果有人对如何实现这一点有建议,那将非常有帮助。(我们每天追踪 4 到 5 个生产级交换空间警报。更正,忽略。这让我们感到害怕,也应该让 Zabbix 开发人员感到害怕。狼来了可不是什么好事。)
账单
答案3
如果您认为这不是问题,您可以禁用警告。转到:
Templates > Template OS Linux > Triggers
并禁用:
Lack of free swap space on {HOST.NAME}
如果您想监控其他机器上的交换空间,您也可以复制该模板。