我有一个NagiosXi服务器监视63台主机上的631个服务。每七个小时,服务器上的负载达到20 and,然后逐渐回落到-0。
没有每7小时运行一次的cron作业。
服务器有8核和2GB内存。RAM不是一个问题,它仍然保持1GB的空闲在高峰期间,并且将它提高到4GB没有什么区别。大约一周前,服务器也被迁移到一个新的主机上,没有进行任何更改。
我们还安排了17台被监控主机的停机时间,所以他们只能在周一到周五早上6点到下午6点被监控,这似乎对负载峰值没有任何影响。
大多数检查都是在Windows服务器上使用check_wmi_plus完成的。
在加载高峰期间,我倾向于看到5-8个check_wmi_plus.pl实例使用2-3%的cpu,少数httpd进程使用相同的cpu,但是没有什么比使用大量cpu更突出的了。这些过程也非常快,所以它们不会被挂起,也不会花很长的时间。NagiosXi性能监视器中的服务检查执行时间趋向于峰值为5.5s,平均在1s左右。
有人能提出可能的原因吗,或者我怎样才能进一步解决这个问题?
发布于 2012-12-03 22:30:32
高负载并不一定意味着您使用的是较高级别的CPU,它只在快照中提供随时准备运行和接收CPU时间的进程数,而不是提供多少CPU时间。
Nagios确实会根据您如何设置它的监视计划而快速地分离出许多进程,并且有时会在启动许多尽可能快的进程时导致激增,但它们可能不需要太多CPU,或者会立即进入睡眠/等待状态。
顺便说一句,如果禁用Nagios中的通知,这并不能阻止它继续监视给定的主机或服务。
发布于 2019-03-22 02:47:51
这是因为内核是如何计算负载的。请参阅源代码:https://github.com/torvalds/linux/blob/master/include/linux/sched/loadavg.h,您将得到如下内容:
#define LOAD_FREQ (5*HZ+1)LOAD_FREQ是内核收集CPU负载的间隔。请注意,有一个微小的移动值为0.001s。所以它需要5* 1000 *5.001秒才能回到5秒的倍数。25005/ 3600是大约7小时。
因此,我敢打赌,系统会周期性地执行短任务,并且每7个小时就会被内核“捕获”。
https://serverfault.com/questions/454745
复制相似问题