%CPU를 최고 로드 평균으로 조정

%CPU를 최고 로드 평균으로 조정

우리는 OpenMP를 활용하여 여러 스레드(코어당 하나)에서 계산을 수행하여 사용 가능한 모든 CPU를 포화시키는 장기 실행 프로세스를 보유하고 있습니다.

저는 24개 코어 모두에서 실행되는 서버의 top(1)을 보고 있습니다.

예상할 수 있듯이 %CPU 열에는 CPU의 2380-2400%를 소비하는 프로세스가 표시됩니다. 몇 시간 동안 쉬지 않고 실행되었습니다.

  PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
27647 xxx   20   0 1416m 232m  11m R 2390.8  0.1   2324:59 pig

그러나 로드 평균은 9와 11 사이에서만 변동합니다.

top - 19:22:37 up 25 days,  5:35,  5 users,  load average: 10.78, 10.24, 9.60

그리고 나는 그것이 24 주위 또는 24 바로 아래에 있을 것으로 예상합니다.

%CPU가 거짓말을 하고 있는 것입니까? 프로세스가 실제로 절반 이상의 시간 동안 I/O를 수행하고 있지만 여전히 실행 중인 것으로 보고됩니까? 아니면 부하 평균 계산이 잘못된 건가요?

이것은 Linux, RHEL-6, 커널 2.6.32-696.6.3...에 있습니다.

관련 정보