현재이 값을 사용하고 있습니다 :
# 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 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
. 즉. 서버에서 서버로 경고 및 중요 값을 수정할 필요가 없습니다.
간격은 5,10,15입니다. 그건 잘못이야 1,5,15입니다.
답변
이전 게시물이지만 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로드에 대한 나의 모든 발견 :
“로드”의 의미 : Wikipedia의 말 :
모든 유닉스 및 유닉스 계열 시스템은 커널에서 3 개의 “부하 평균”숫자 메트릭을 생성합니다. uptime 명령을 실행하여 Unix 쉘에서 현재 결과를 쉽게 쿼리 할 수 있습니다.
$ uptime
14:34:03 up 10:43, 4 users, load average: 0.06, 0.11, 0.09
위의 출력로드 평균에서 : 평균 0.06, 0.11, 0.09
(단일 CPU 시스템에서) :
- 마지막 1 분 동안 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 시스템에서 위의로드 평균은 다음과 같습니다.
- 마지막 1 분 동안 CPU가 73 % 오버로드되었습니다 (실행 가능한 1.73 개의 프로세스가있는 1 개의 CPU이므로 0.73 개의 프로세스가 차례를 기다려야했습니다)
- 지난 5 분 동안 CPU에 50 %의로드가 발생했습니다 (프로세스를 기다릴 필요가 없었습니다)
- 지난 15 분 동안 CPU에 698 %의 오버로드가 발생했습니다 (7 개의 실행 가능한 프로세스가있는 1 개의 CPU가 있으므로 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
박사 군터에 의해 CPU 부하 분석에 대한 좋은 백서 http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf
박사 군터는 UNIX 커널에 아래로 파고이 온라인 기사에서합니다 (방법로드 평균을 찾을 수 “LA Triplets”)가 계산되고 용량 계획 메트릭으로 얼마나 적합한 지 계산됩니다.
답변
문제의 서버에 비동기식 워크로드가없는 경우 대기열 깊이가 관리해야하는 중요한 서비스 지표 인 경우 정직하게로드 평균을 모니터링 할 가치가 없습니다. 서비스 시간 (서비스 시간 및 서비스 시간)과 같은 중요한 메트릭에서 산만합니다.
답변
Nagios는 Munin 또는 Cacti와 같은 도구이며 서버에서 발생하는 다양한 종류의 작업 부하를 그래프로 표시합니다. load_average, CPU 사용량, 디스크 IO 또는 다른 것이어야합니다.
이 정보를 사용하면 Nagios에서 좋은 임계 값을 설정하는 것이 더 쉽습니다.
답변
시스템 성능이 어떤 부하 평균에 영향을 미치는지 알고 있습니까? 우리는 마지막 작업에서 35-40의로드 평균에 일관되게 서버를 배치했지만 여전히 응답했습니다. 정확한 숫자를 얻으려면 약간의 탐정 작업을 수행 해야하는 측정입니다.
대신 SSH 또는 http의 평균 연결 시간과 같은 시스템의 다른 메트릭을 측정 할 수 있습니다. 이것은 시스템의 부하량을 나타내는 더 나은 지표 일 수 있습니다.
답변
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