现在我正在使用这些值:
# y = c * p / 100
# y: nagios value
# c: number of cores
# p: wanted load procent
# 4 cores
# time 5 minutes 10 minutes 15 minutes
# warning: 90% 70% 50%
# critical: 100% 80% 60%
command[check_load]=/usr/local/nagios/libexec/check_load -w 3.6,2.8,2.0 -c 4.0,3.2,2.4
但这些值几乎是随机选取的。
有人有一些测试值吗?
答案1
Linux 负载其实很简单。每个负载平均值都是所有核心平均负载的总和。即。
1 min load avg = load_core_1 + load_core_2 + ... + load_core_n
5 min load avg = load_core_1 + load_core_2 + ... + load_core_n
15 min load avg = load_core_1 + load_core_2 + ... + load_core_n
在哪里0 < avg load < infinity
。
因此,如果 4 核服务器上的负载为 1,则意味着每个核心的使用率为 25%,或者一个核心的负载为 100%。负载为 4 意味着所有 4 个核心的负载均为 100%。负载大于 4 意味着服务器需要更多核心。
check_load
现在有
-r, --percpu
Divide the load averages by the number of CPUs (when possible)
这意味着在使用时,您可以将服务器视为只有一个核心,因此直接写出百分比分数,而不必考虑核心数。-r
警告和临界间隔变为0 <= load avg <= 1
。也就是说,您不必在不同服务器之间修改警告和临界值。
OP 的间隔是 5,10,15。这是错的。应该是 1,5,15。
答案2
虽然这是一篇老帖子,但现在才回复,因为我知道 check_load 阈值对于新手来说是个大难题。。;)
如果 CPU 5 分钟内占用 70%,10 分钟内占用 60%,15 分钟内占用 50%,则发出警告警报。如果 CPU 5 分钟内占用 90%,10 分钟内占用 80%,15 分钟内占用 70%,则发出严重警报。
*command[check_load]=/usr/local/nagios/libexec/check_load -w 0.7,0.6,0.5 -c 0.9,0.8,0.7*
我对 CPU 负载的所有发现:
“负载”是什么意思:维基百科说:
所有 Unix 和类 Unix 系统都会在内核中生成三个“平均负载”数字的指标。用户可以通过运行 uptime 命令轻松地从 Unix shell 查询当前结果:
$ uptime
14:34:03 up 10:43, 4 users, load average: 0.06, 0.11, 0.09
从上面的输出可以看出,平均负载:0.06, 0.11, 0.09
意味着(在单 CPU 系统上):
- 在最后一分钟,CPU 负载不足 6%
- 在过去 5 分钟内,CPU 负载不足 11%
- 在过去 15 分钟内,CPU 负载不足 9%
。
$ uptime
14:34:03 up 10:43, 4 users, load average: 1.73, 0.50, 7.98
1.73 0.50 7.98
上述单 CPU 系统上的平均负载如下:
- 在最后一分钟,CPU 过载了 73%(1 个 CPU 上有 1.73 个可运行进程,因此 0.73 个进程必须等待轮到)
- 在过去 5 分钟内,CPU 负载不足 50%(没有进程需要等待轮次)
- 在过去的 15 分钟内,CPU 过载了 698%(1 个 CPU 上有 7.98 个可运行进程,因此 6.98 个进程必须等待轮到)
Nagios阈值计算:
对于 Nagios CPU 负载设置,其中包括警告和严重:
y = c * p / 100
在哪里:
y = nagios value
c = number of cores
p = wanted load procent
对于 4 核系统:
time 5 min 10 min 15 min
warning: 90% 70% 50%
critical: 100% 80% 60%
command[check_load]=/usr/local/nagios/libexec/check_load -w 3.6,2.8,2.0 -c 4.0,3.2,2.4
对于单核系统:
y = p / 100
在哪里:
y = nagios value
p = wanted load procent
time 5 min 10 min 15 min
warning: 70% 60% 50%
critical: 90% 80% 70%
command[check_load]=/usr/local/nagios/libexec/check_load -w 0.7,0.6,0.5 -c 0.9,0.8,0.7
Gunther 博士撰写的有关 CPU 负载分析的精彩白皮书http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf 在这篇在线文章中,Gunther 博士深入研究 UNIX 内核,以找出如何计算平均负载(“LA 三元组”)以及它们作为容量规划指标的适用性。
答案3
除非所讨论的服务器具有异步工作负载,其中队列深度是需要管理的重要服务指标,否则它甚至不值得监控平均负载。它只会分散对重要指标的注意力,例如服务时间(服务时间,服务时间)。
答案4
您知道系统性能在平均负载多少时会受到影响吗?我上一份工作中的服务器平均负载始终保持在 35-40,但仍然响应迅速。您必须进行一些侦查工作才能获得准确的数字。
您可能想要测量系统上的一些其他指标,例如 SSH 或 http 的平均连接时间;这可能是更好地指示您的系统承受了多少负载的指标。