최신 CPU에서 로드 평균은 어떻게 작동하나요?

최신 CPU에서 로드 평균은 어떻게 작동하나요?

로드 평균에 대한 나의 이해나는 현재 시스템에 완전히 충격을 받았습니다. 내 워크스테이션의 CPU는 하이퍼스레딩이 활성화된 i7이며 cat /proc/cpuinfo4개의 CPU를 생성합니다.

요약하자면, Gentoo용 패키지를 컴파일할 때 내 PC는 1분에서 15분까지의 모든 로드 평균 기간에서 16개 이상의 로드를 생성할 수 있었고 여전히 다른 모든 작업을 완벽하게 수행할 수 있었습니다. 24까지 올라가는 경우도 본 적이 있는데, 이때부터 속도가 느려지기 시작합니다. 1.0이 코어의 전체 활용을 나타낸다면 어떻게 작동합니까?

답변1

1.0은 100% 활용률의 1코어가 아니라 특정 기간 동안의 작업 대기 평균입니다.

유휴 머신의 로드 번호는 0이고 CPU를 사용하거나 기다리는 각 프로세스(준비 큐 또는 실행 큐)는 로드 번호를 1씩 증가시킵니다. 대부분의 UNIX 시스템에서는 실행 중(CPU에서) 또는 실행 가능(대기) 중인 프로세스만 계산합니다. CPU) 상태. 그러나 Linux에는 중단 없는 절전 상태(일반적으로 디스크 활동을 기다리는 중)에 있는 프로세스도 포함되어 있습니다. 이는 I/O 시스템이 사용 중이거나 정지되어 많은 프로세스가 I/O에서 차단된 상태로 남아 있는 경우 상당히 다른 결과를 초래할 수 있습니다. 예를 들어 NFS 서버 오류 또는 USB 1.x 저장 장치와 같은 느린 미디어로 인한 프로세스 차단이 여기에 포함됩니다. 이러한 상황으로 인해 로드 평균이 증가할 수 있으며, 이는 실제 CPU 사용량 증가를 반영하지 않습니다(그러나 사용자가 얼마나 오랫동안 기다려야 했는지는 알 수 있습니다).

~에서여기

답변2

전통적으로 Unix 시스템은 프로세스가 휴면 상태가 아니거나 아주 짧은 시간 동안 대기(예: 페이지 대기) 중인 경우 해당 프로세스를 "실행 가능"하다고 간주했습니다. Linux는 이 목록에 논스톱 I/O 대기를 추가하므로 로드 평균이 증가합니다.

또한 niced 프로세스는 실행될 수 있지만 우선 순위가 낮기 때문에 시스템이 사용 중일 때 실제 CPU 시간을 받지 못합니다. 따라서 이러한 프로세스는 시스템이 로드된 느낌을 주지 않으면서 로드 평균을 증가시킬 수도 있습니다.

관련 정보