check_load使用哪些警告和关键值?


13

现在我正在使用这些值:

# 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

但是这些值几乎是随机选择的。

有人有一些测试值吗?


2
我觉得没有standardtested价值。这取决于您预期的服务器工作量。如果期望高负载,则应增加值。否则,您的服务器将始终处于严重状态。
哈立德2010年

是的,那是我的问题。我不断收到重要通知。我应该将所有内容乘以3吗?
桑德拉(Sandra)2010年

Answers:


9

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。


27

尽管它是一个老帖子,但现在因为我知道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 Triplets”)以及它们作为容量规划指标的适用性。


2
时间应为1.5和15分钟
达尔夫(Dalf)2015年

3

除非所讨论的服务器具有异步工作负载,而队列深度是要管理的重要服务指标,否则,坦白地说,它甚至不值得监视平均负载。它只是分散了诸如服务时间(服务时间和服务时间)等重要指标的干扰。


2

Nagios还是Munin或Cacti之类的工具,也是一个很好的补充,它们可以显示服务器所经历的不同类型的工作负载。无论是load_average,cpu使用率,磁盘io还是其他。

使用此信息,可以更轻松地在Nagios中设置良好的阈值。


1

您知道系统平均在多大负载下会影响性能吗?我上次工作时拥有的服务器始终处于35-40的平均负载水平,但仍然响应迅速。这是您必须做一些侦探工作才能获得准确数字的一种度量。

您可能需要测量系统上的其他一些指标,例如SSH或http的平均连接时间。这也许可以更好地表明系统承受的负载量。


2
平均负载平均为35是什么意思?cpu核心的数量会有所不同吗?
桑德拉(Sandra)2010年

1

扩展Invent Sekar的答案:使用check_load和百分比时,我相信您将需要“ -r”命令行参数以及其他参数。

例如:

command[check_load]=/usr/local/nagios/libexec/check_load -r -w 0.7,0.6,0.5 -c 0.9,0.8,0.7
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.