Linux로드 계산에 간단한 1/5/15 분 이동 평균이 사용되지 않는 이유는 무엇입니까? 12×5, 12×15입니다. 15 분의로드 평균 동안. 그러나이 기사를

최근까지로드 평균 (예 : 상단에 표시)이 “실행 가능”또는 “실행 중”상태 인 프로세스 수의 n 개의 마지막 값에 대한 이동 평균이라고 생각했습니다. 그리고 n은 이동 평균의 “길이”로 정의되었을 것입니다.로드 평균을 계산하는 알고리즘이 5 초마다 트리거되는 것처럼 보이기 때문에 n은 1 분로드 평균에 대해 12, 5 분로드 평균에 대해 12×5, 12×15입니다. 15 분의로드 평균 동안.

그러나이 기사를 읽었습니다 : http://www.linuxjournal.com/article/9001 . 이 기사는 꽤 오래되었지만 오늘날 Linux 커널에서 동일한 알고리즘이 구현됩니다. 하중 평균은 이동 평균이 아니라 이름을 모르는 알고리즘입니다. 어쨌든 나는 가상 커널로드와 가상의 주기적 부하에 대한 이동 평균을 비교했다.

로드 그래프.

큰 차이가 있습니다.

마지막으로 내 질문은 :

  • 이 구현이 실제 이동 평균과 비교하여 선택된 이유는 무엇입니까?
  • 마지막 순간보다 훨씬 많은 시간이 알고리즘에 의해 고려되므로 모든 사람이 “1 분 평균로드”에 대해 말하는 이유는 무엇입니까? (수학적으로 부팅 이후의 모든 측정; 실제로 반올림 오류를 고려하면 여전히 많은 측정)


답변

이 차이는 원래 버클리 유닉스로 거슬러 올라가며 커널이 실제로 평균을 유지할 수 없다는 사실에서 비롯됩니다. 이를 위해서는 많은 과거의 측정 값을 유지해야하며, 특히 예전에는 여분의 메모리가 없었습니다. 대신 사용 된 알고리즘은 모든 커널이 유지해야하는 이점은 이전 계산의 결과라는 이점이 있습니다.

컴퓨터 속도와 해당 클럭 사이클이 GHz 대신 수십 MHz로 측정 될 때 알고리즘은 실제와 조금 더 가까웠습니다. 요즘 불일치가 발생하는 데 더 많은 시간이 있습니다.


답변