> 운영 및 유지보수 > 리눅스 운영 및 유지 관리 > Linux CPU 로드 및 CPU 사용량 이해

Linux CPU 로드 및 CPU 사용량 이해

步履不停
풀어 주다: 2019-07-02 16:16:15
원래의
3293명이 탐색했습니다.

Linux CPU 로드 및 CPU 사용량 이해

CPU 부하 및 CPU 사용량

둘 모두 시스템의 사용량을 어느 정도 반영할 수 있습니다.

Cpu ​​사용량은 현재 CPU 사용량을 반영하며, 그 이유는 높음에서 낮음입니다. CPU 처리 시간을 차지하는 프로세스가 io 대기 상태에 있을 수 있지만 아직 대기 모드로 해제되지는 않았다는 것입니다.

로드 평균은 일정 시간 동안 CPU 시간을 점유하는 프로세스 수와 CPU 시간을 기다리는 프로세스 수를 의미합니다. 여기서 CPU 시간을 기다리는 프로세스는 대기 상태에 있는 프로세스를 제외하고 깨어나기를 기다리는 프로세스를 의미합니다.

위 분석에서 볼 수 있듯이 머신은 CPU 사용량이 낮고 부하가 높은 상황에 있을 가능성이 높습니다. 따라서 머신의 사용량은 실제 사용량에서 두 ​​가지를 결합해야 합니다. 듀얼 코어 Zhiqiang 2.8GHZ의 경우 2G 메모리 시스템의 평균 로드가 약 50에 도달하면 CPU 사용량이 100%에 가깝습니다(애플리케이션에 IO 작업이 많이 있음). 실제 액세스 지연은 그리 높지 않습니다. 따라서 CPU가 여전히 유휴 상태일 때 IO 응답을 어떻게 개선하는가가 로드를 줄이는 열쇠입니다. 많은 사람들은 로드가 수십에 도달하면 시스템이 매우 바빠질 것이라고 생각합니다. 이번에는 로드가 높지 않을 수 있습니다. 이는 문제를 잘 설명합니다. CPU에서 처리된 프로세스가 처리되면 대기 중인 프로세스도 즉시 응답을 받을 수 있습니다. 이 경우 io 읽기 및 쓰기 속도가 최적화되어야 합니다. CPU 사용량이 지속적으로 90%를 초과하면 평균 부하가 한 자릿수에 불과하더라도(예: 특정 프로세스가 컴퓨팅 중임) 실제로 컴퓨터는 이미 바쁜 상태입니다~

사실 이전 기사에서 제가 CPU 사용량에 대해서도 썼습니다. 낮은 속도와 높은 로드, 이유 분석: CPU 사용량은 낮지만 로드가 매우 높다는 것은 IO

CPU 로드

에 비유될 수 있습니다. 너무 무거우면 부하 평균의 진정한 의미를 이해해야 합니다. 아래에서는 "Linux CPU 로드 이해" 기사를 기반으로 가장 널리 사용되는 언어로 이 문제를 설명하려고 합니다.
우선 가장 간단한 경우를 가정하면 컴퓨터에는 CPU가 하나만 있고 모든 작업은 이 CPU에 의해 완료되어야 합니다.
그래서 우리는 이 CPU를 다리라고 상상하는 것이 좋습니다. 다리에는 차선이 하나 뿐이고 모든 차량은 이 차선을 통과해야 합니다. (물론 이 다리는 한 방향으로만 사용할 수 있습니다.)
시스템 부하가 0이므로 다리 위에 차량이 한 대도 없습니다.

시스템 부하는 0.5입니다. 이는 다리 절반에 자동차가 있다는 의미입니다.

시스템 로드는 1.0입니다. 이는 다리의 모든 구간에 자동차가 있다는 의미이며, 이는 다리가 "가득 차 있음"을 의미합니다. 그러나 이 시점까지 다리는 여전히 통행이 가능했다는 점에 유의해야 합니다.

시스템 부하가 1.7인데, 이는 차량이 너무 많고, 교량은 이미 점유(100%)되었으며, 뒤에 있는 교량에 탑승하기 위해 대기 중인 차량이 교량 데크에 있는 차량의 70%임을 의미합니다. 비유하자면, 시스템 부하가 2.0이면 교량 상판에 있는 차량 수만큼 교량에 탑승하기 위해 대기 중인 차량이 있다는 의미이고, 시스템 부하가 3.0이면 교량에 탑승하기 위해 대기 중인 차량 수가 2배라는 의미입니다. 교량 데크에 차량이 있습니다. 즉, 시스템 부하가 1보다 크면 뒤따르는 차량은 기다려야 하며, 시스템 부하가 클수록 교량을 건너기 위해 기다려야 하는 시간이 길어집니다.

CPU의 시스템 로드는 기본적으로 위의 비유와 동일합니다. 교량의 트래픽 용량은 CPU의 최대 작업 부하입니다. 교량의 차량은 CPU의 처리를 기다리는 프로세스입니다.
CPU가 분당 최대 100개의 프로세스를 처리하는 경우 시스템 로드 0.2는 CPU가 이 1분 동안 20개의 프로세스만 처리한다는 의미이고, 시스템 로드 1.0은 CPU가 이 1분 동안 정확히 100개의 프로세스를 처리한다는 의미입니다. 이는 CPU가 처리하는 100개의 프로세스 외에도 CPU가 처리하기 위해 대기열에 대기 중인 프로세스가 70개 있다는 의미입니다.
컴퓨터가 원활하게 작동하려면 시스템 부하가 1.0을 초과하지 않도록 하는 것이 가장 좋습니다. 그래야 어떤 프로세스도 기다릴 필요가 없고 모든 프로세스가 처음에 처리될 수 있습니다. 분명히 1.0은 중요한 값입니다. 이 값을 초과하면 시스템이 최적의 상태가 아니므로 개입해야 합니다.

CPU 로드 - 멀티 프로세서

위에서는 컴퓨터에 CPU가 1개만 있다고 가정했습니다. 컴퓨터에 CPU가 2개 장착되면 어떻게 되나요?
CPU가 2개라는 것은 컴퓨터의 처리 능력이 두 배로 늘어났다는 뜻이고, 동시에 처리할 수 있는 프로세스 수도 두 배로 늘어났다는 의미입니다.
브리지에 비유하자면 2개의 CPU는 브리지에 2개의 레인이 있어 트래픽 용량이 두 배로 늘어난다는 의미입니다.

따라서 CPU 2개는 시스템 로드가 2.0에 도달할 수 있음을 나타내며 이때 각 CPU는 100% 워크로드에 도달합니다. 대체로 말해서 n개의 CPU가 있는 컴퓨터의 경우 허용 가능한 최대 시스템 로드는 n.0입니다.

CPU 로드 - 멀티 코어 프로세서

칩 제조업체는 종종 멀티 코어 CPU라고 하는 CPU 내부에 여러 CPU 코어를 포함합니다.
시스템 로드 측면에서 멀티 코어 CPU는 멀티 CPU와 비슷한 효과를 가지므로 시스템 로드를 고려할 때 이 컴퓨터에 있는 CPU 수와 각 CPU에 있는 코어 수를 고려해야 합니다. 그런 다음 시스템 부하를 총 코어 수로 나눕니다. 각 코어의 부하가 1.0을 초과하지 않는 한 컴퓨터는 정상적으로 실행됩니다.
컴퓨터에 CPU 코어가 몇 개 있는지 어떻게 알 수 있나요?
"cat /proc/cpuinfo" 명령으로 CPU 정보를 확인할 수 있습니다. "grep -c 'model name' /proc/cpuinfo" 명령은 CPU의 총 코어 수를 직접 반환합니다.

시스템 로드에 대한 경험 법칙

1.0이 시스템 로드에 이상적인 값인가요?
반드시 그런 것은 아닙니다. 시스템 관리자는 약간의 여유를 두는 경우가 많습니다. 이 값이 0.7에 도달하면 주의를 기울여야 합니다. 경험상 규칙은 다음과 같습니다.
시스템 로드가 지속적으로 0.7보다 크면 문제가 있는 위치를 조사하기 시작하여 상황이 악화되지 않도록 해야 합니다.
시스템 부하가 계속 1.0보다 큰 경우 이 값을 낮추는 솔루션을 찾아야 합니다.
시스템 로드가 5.0에 도달하면 시스템에 심각한 문제가 있거나 오랫동안 응답하지 않거나 충돌이 임박했음을 의미합니다. 시스템이 이 값에 도달하도록 놔두어서는 안 됩니다.

내 컴퓨터의 코어는 24개입니다. 그러면 적절한 부하는 얼마인가요?

[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA]#grep '모델 이름' /proc/cpuinfo | wc -l24

답은 다음과 같습니다.

[root@jiangyi01.sqa.zmf / home/ahao.mah/ALIOS_QA]#echo "0.7*24" |bc16.8

최고의 관찰 시간

마지막 질문 "부하 평균"은 총 3개의 평균을 반환합니다----1 분 시스템 로드, 5분 시스템 로드, 15분 시스템 로드, ---- 어떤 값을 참조해야 합니까?
단 1분 동안의 시스템 부하가 1.0보다 크고 나머지 두 시간은 1.0 미만인 경우 이는 일시적인 현상일 뿐 문제가 심각하지 않음을 나타냅니다.
CPU 코어 수 조정 후 15분 이내에 평균 시스템 로드가 1.0보다 큰 경우 문제가 지속되며 일시적인 현상이 아니라는 의미입니다. 따라서 정상적인 컴퓨터 작동을 나타내는 지표로 주로 "15분 시스템 로드"를 관찰해야 합니다.

더 많은 Linux 기사를 보려면 Linux Tutorial 칼럼을 방문하여 알아보세요!

위 내용은 Linux CPU 로드 및 CPU 사용량 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿