출력에 관해 질문하고 싶습니다 sar -q
. 누구든지 제가 이해하도록 도와주시면 매우 감사하겠습니다 runq-sz
.
8 cpu threads
CPU 스레드가 열려 있는 시스템이 있습니다 RHEL 7.2
.
[ywatanabe@host2 ~]$ cat /proc/cpuinfo | grep processor | wc -l
8
sar -q
아래는 내 시스템에 대한 결과 입니다 runq-sz
.낮은에 비해 ldavg-1
.
runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
05:10:01 PM 0 361 0.29 1.68 2.14 0
05:11:01 PM 0 363 1.18 1.61 2.08 2
05:12:01 PM 0 363 7.03 3.15 2.58 1
05:13:01 PM 0 365 8.12 4.15 2.96 1
05:14:01 PM 3 371 7.40 4.64 3.20 1
05:15:01 PM 2 370 7.57 5.26 3.51 1
05:16:01 PM 0 366 8.42 5.90 3.84 1
05:17:01 PM 0 365 8.78 6.45 4.16 1
05:18:01 PM 0 363 7.05 6.40 4.28 2
05:19:02 PM 1 364 8.05 6.74 4.53 0
05:20:01 PM 0 367 7.96 6.96 4.74 1
05:21:01 PM 0 367 7.86 7.11 4.93 1
05:22:01 PM 1 366 7.84 7.31 5.14 0
From 은 실행 대기열 내의 작업 수를 나타내는 man sar
것으로 생각되며 그 상태는 다음과 같습니다.runq-sz
작업 실행의 R 상태에 해당합니다 ps
.
runq-sz
Run queue length (number of tasks waiting for run time).
그것은 실제로 무엇을 의미하는가 runq-sz
?
답변1
이 매뉴얼 페이지에는 이 속성에 대한 더 자세한 설명이 있습니다.
q-sz 실행
CPU 실행을 기다리는 메모리의 커널 스레드 수입니다. 일반적으로 이 값은 2보다 작아야 합니다. 지속적으로 높은 값은 시스템이 CPU에 바인딩되어 있을 수 있음을 의미합니다.
결과 해석
많은 "메트릭"의 경우와 마찬가지로 성능 문제가 있는지 해석하려면 이를 함께 사용해야 합니다. 이 특정 표시기는 시스템에 CPU 시간이 부족한지 여부를 나타냅니다.
그리고 load1, 5, 15는 프로세스가 실행 대기열에 있지만 강제로 런타임을 기다려야 함을 의미합니다. load1,5,15 변수는 시스템의 전반적인 추세와 대기 중인 프로세스가 많은지(부하 증가) 대 하향 추세를 알려줍니다. 그러나 프로세스가 로드1,5,15를 기다릴 수 있는 다양한 상황이 있습니다. 일반적으로 로드가 1,5,15배 더 높은 경우 I/O가 차단됩니다.
runq-sz를 사용하면 CPU 시간을 기다릴 수 있습니다.
인용하다
답변2
이 기사는 Google에 처음으로 게재되며 위의 마지막 답변이 승인된 것으로 표시됩니다.
답변은 참고자료를 제공하고 텍스트를 인용합니다.솔라리스맨페이지. 그러나 OP의 질문은RHEL 7. 실행 가능한 프로세스 보고는 Solaris와 Linux에서 다르게 처리됩니다.
Solaris는 실행 대기 중인 프로세스 수를 나타내는 지표로 로드/큐 평균을 사용하는 것을 선호합니다.
Linux는 실행 중인 프로세스 수와 실행 대기 중인 프로세스 수를 나타내는 지표로 로드 평균/큐를 사용하는 경향이 있습니다.
runq-sz
in의 Linux 표현은sar -q
현재 실행 중인 프로세스 수 + 대기 중인 프로세스 수를 의미할 가능성이 높습니다.
8스레드 인스턴스에 대한 OP의 원래 예를 참조하면 runq-sz
8 미만은 이와 관련하여 최적의 성능을 나타냅니다.
나는 낮음 runq-sz
과 높음이 loadavg
일종의 막힘이나 수면 과정을 나타낼 수 있다는 데 동의합니다. OP의 예제 sar 출력 blocked
열 에서 이를 부분적으로 볼 수 있습니다 .
답변3
가동 시간은 마지막 1분, 5분, 15분 동안의 로드 평균을 제공합니다. 그러나 가동 시간(예 sar
: ) 중에는 시스템 로드에 대한 즉각적인 스냅샷을 얻을 수 없습니다. ( sar
및 )는 모두 uptime
동일한 로드 정보를 보고합니다.
ldavg-1 -> last 1 minute
ldavg-5 -> last 5 minutes
ldavg-15 -> last 15 minutes.
runq-sz
CPU가 필요하거나 CPU를 기다리는 프로세스 수입니다.
이는 로드 평균과 상관관계가 있지만(부하가 더 높으면 CPU 고갈이 가능함) 직접적인 상관관계는 없습니다.
대기 중 -> 프로세스는 무제한의 일부 리소스를 기다립니다(프로세스가 오랜 시간 동안 대기하므로 로드 평균이 매우 높을 수 있음).
대기열에 있는 프로세스는 대기열에 CPU를 가져오는 프로세스입니다. 즉, CPU를 100% 기다리고 CPU가 사용 가능해지면 일부를 가져옵니다. 즉, CPU가 부족합니다.
따라서 sar -q
CPU 부족(큐 크기가 매우 큼)이 있는지 이해할 수 있습니다. 가동 시간과 ldavg-#을 통해 시스템 부하에 대한 아이디어를 얻을 수 있으며 대기열 크기가 높다는 힌트를 얻을 수도 있습니다.
도움이 되었기를 바랍니다.
답변4
Linux에 대해 다음과 같이 말씀하셨습니다.
- 로드 평균 = 실행 중인 프로세스 + 대기 중인 프로세스
- runq-sz = 실행 중인 프로세스 + 대기 중인 프로세스
이것은 의미한다부하 평균그리고q-sz 실행실행 중인 프로세스 포함
그렇다면 차이점은 무엇입니까?대기 프로세스그리고대기열 프로세스제발?
예를 들어 설명해 주실 수 있나요(첫 번째 줄 runq-sz=10)?
20코어(40스레드) 서버용입니다.
ldavg-1 > runq-sz는 많은 프로세스가 리소스(예: I/O)를 기다리고 있음을 의미합니까?
06:10:01 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
06:20:02 10 1696 28.95 30.21 28.25
06:30:02 8 1672 25.93 27.57 27.78
06:40:02 8 1707 31.82 35.37 32.88
06:50:01 9 1707 28.90 31.06 31.89
내 서버의 CPU 사용량이 매우 낮습니다. 80% 유휴 상태입니다.
인사,