在我的基础设施中,我有服务器,这些服务器定期做一些繁重的工作。比方说,每10分钟cpu利用率是100%,持续时间不超过5分钟。如果服务器在此状态下工作超过15分钟,那么我希望得到通知,否则短时间内的峰值利用率是正常的。
因此,我在$SHINKEN_ETC/packs/company_packs/template.cfg中创建了一个特殊的主机类,如下所示:
(...)
define host {
name linux_1min_15tries_every1min
use
我有一个进程运行在Linux上,它偶尔占用超过100% (它是一个四核处理器) CPU (如'top‘输出所示),而在这个进程上运行的其他命令也会卡住。当我注意到这个和转储进程核心时,CPU利用率下降到正常,并且内核没有显示出任何异常。
有没有办法(命令、剧本等)?哪种处理器可以根据CPU的利用率自动生成进程核心,即在进程发生过程中自动生成进程内核?
我正在跟踪,以获得最后1分钟的平均系统负载。我使用的是[x / psutil.cpu_count() * 100 for x in psutil.getloadavg()],四舍五入到小数点1位(即[round(x / psutil.cpu_count() * 100, 1) for x in psutil.getloadavg()])。
有时我得到的数值超过100% (例如120% - 130%),这是否有任何意义,还是因为round?
编辑
我刚刚意识到Hyper Thread CPUs are excluded会导致超过100%,对吧?
默认情况下,zabbix能够检查机器上的进程总数、触发器和错误(如果这些进程超过300个)。
显然,这对更大的机器不起作用。我确实有一个32码的服务器,很明显300个进程对这台机器来说是没有意义的。
如果每个CPU的进程数大于300个,我确实希望更改此规则以触发警告。
此触发器位于linux模板内,命名为“{HOST.NAME}上的进程太多”,默认值为"{Template OS Linux:proc.num[].avg(5m)}>300"。
我试着写一些类似{Template OS Linux:proc.num[].avg(5m)}/{Template OS Linux: