시스템로드가 얼마나 높을 수 있습니까?


12

SSH를 통해 서버에 로그인 할 때마다 약간의 서버 정보가 깜박입니다. IE IP 주소, 스왑 사용, 메모리 사용 등. 나를 깜박이는 다른 것 중 하나는 시스템로드입니다. 이제 대부분의 경우 시스템로드 번호는 <0.10이지만 다른 경우에는 최대 0.89 (보통 부팅)입니다.

이것은 시스템로드가 얼마나 높을 수 있는지에 대한 의문을 제기합니다. 예를 들어 100.00에서 100.00까지 올라갈 수 있습니까?


소수 부분은 CPU 사용량을, 소수 부분은 대기 프로세스 수를 나타냅니다. 같은 뭔가 100.89보다 더 가능성이있을 것100.00
Lekensteyn


@ Caleb, 나는 그것이 중복이라는 것에 동의하지 않습니다. 이는 영업 이익이있을 가능성이 목적으로 "얼마나 높은 CAN 시스템 부하 이동 (여전히 안정적인 수행)?"와 같은 비슷한 물어. 그러나 말한 것처럼, 같은 질문이 아닙니다.
Cyclops

@Cyclops : OP가 서버에서 허용 가능한 수준을 묻지 않고 * nix 시스템의 작동 방식에 대한 순수하게 이론적 인 질문을하고 있다면 여기에서 다루지 않는 주제가 아니고 unix.SE로 마이그레이션 할 수 있습니까?
Caleb

답변:


17

이것은 시스템로드가 얼마나 높을 수 있는지에 대한 의문을 제기합니다. 예를 들어 100.00에서 100.00까지 올라갈 수 있습니까?

물론. uptime매뉴얼 페이지를 보면 :

   System load averages is the average number of processes that are either
   in a runnable or uninterruptable state.  A process in a runnable  state
   is  either  using the CPU or waiting to use the CPU. A process in unin‐
   terruptable state is waiting for some I/O access, eg waiting for  disk.
   The  averages  are  taken over the three time intervals.  Load averages
   are not normalized for the number of CPUs in a system, so a load  aver‐
   age  of 1 means a single CPU system is loaded all the time while on a 4
   CPU system it means it was idle 75% of the time.

따라서 많은 프로세스가 실행 대기 중이거나 많은 프로세스가 I / O 대기를 차단 한 경우로드 평균이 높아집니다. 이 기사에서는 이에 대해 자세히 설명하고 다른 리소스에 대한 유용한 링크를 제공합니다.

언로드 시스템에서로드 평균은 일반적으로 0 <= load_average <= n 범위에 있으며 , 여기서 n 은 시스템의 코어 수입니다.


1
그러나 I / O 대기는 많은 부하를 생성하는 쉬운 방법입니다. nfs 공유를 마운트하고, nfs 서버를 켜고, nfs 공유에서 무언가를 만지는 10.000 개의 프로세스를 시작하십시오. boom, load of 10.000
Jens Timmerman

5

살아있는 시스템이 수천 명에 달하는 것을 보았습니다. 로드 커널이 관심을 끌고 CPU에서 어느 정도 시간이 걸리는 경쟁의 대기 프로세스를 기반으로 상대 측정을 평균합니다. 기계가 작업으로 늪에 빠지거나 충돌하는 경우 시간이 오래 걸릴 수 있습니다.

허용 가능한 수준은 시스템, 코어 수, 사용중인 커널 작업 스케줄러 종류 및 예상되는 작업에 따라 다릅니다. ~ 10 범위에서 꽤 행복하지만 ~ 40-50에 도달하면 멈출 수있는 기계가 있습니다. 다른 사람은 2시에 눈에 띄게 게으르고 10시에 사용할 수 없게됩니다.

한 번에 많은 작업을 수행하고 시스템이 작동하기 때문에 부팅 중에로드가 높아지는 것은 드문 일이 아닙니다. 데스크탑 리눅스 부팅시 ~ 1의 정상적인로드를 고려한 다음 아무 것도하지 않고 ~ 0.1로 내려갑니다.


3
사소한 수정 :로드 평균은 시간의 척도가 아닙니다. 대기중인 평균 프로세스 수입니다. 1) CPU를 호핑하는 한 프로세스와 절대 CPU를 얻지 못하는 프로세스, 2) 두 프로세스가 지속적으로 거래되는 것을 구별 할 방법이 없습니다. 둘 다 1.0입니다.
Plutor

1
나는 심각하게 헛된 리눅스 상자에서 1500 +를 보았습니다. 그리고는 죽었다.
Tom O'Connor

3

Linux에서 시스템로드 평균 값은 세 가지 상태 중 하나의 프로세스로 구성됩니다. 일반적으로로드 평균은 CPU 시간을 기다리거나 CPU 시간을 소비하는 프로세스의 양이라고 말할 수 있습니다. 로드 평균 개요의 세 가지 값은 지난 1 분, 마지막 5 분 및 마지막 15 분 동안의로드 평균입니다.

로드 평균으로 계산되는 세 가지 프로세스 상태는 다음과 같습니다. (1) CPU에서 실행중인 프로세스, (2) CPU 시간을 기다리는 프로세스 및 (3) 중단 할 수없는 절전 상태의 프로세스. 마지막 범주는 CPU로드를 생성하지 않으면 서 시스템로드 평균을 크게 높일 수 있습니다.

예를 들어, 사용량이 많거나 사용할 수없는 디스크에서 읽기를 기다리는 12 개의 프로세스는 인터럽트 불가능한 절전 모드의 프로세스로로드 평균 12를 생성하지만 그 동안 CPU가 완전히 유휴 상태 일 수 있습니다.

따라서로드 평균은 두 자릿수까지 쉽게 올라갈 수 있습니다. 그것이 당신의 하드웨어에 의존하는 것은 얼마나 나쁜가. 16 개의 코어가있는 경우 16 개의 프로세스가 CPU 시간을 기다리는 것은 그리 나쁘지 않습니다. 단일 코어 시스템에서 CPU 시간을 기다리는 3 개의 프로세스를 갖는 것은 매우 나쁠 수 있습니다.


CPU 바인딩 프로세스 인 경우에만 나쁘다고 생각합니다. 대부분의 큰 프로세스는 IO 바인딩 또는 RAM 바인딩입니다.
peterh-Reinstate Monica

3

10000 개의 스레드에서 무한 루프를 실행하는 간단한 C 프로세스를 만듭니다. 우선 순위가 매우 낮습니다 (+20). 로드는 10000이고 시스템은 계속 사용할 수 있습니다. 아주 적은 RAM (최대 몇 메가 바이트) 만 사용합니다.

매우 드문 구성이지만 실제 시스템에서는이를 찾을 수 없습니다.

시스템로드 란 CPU 타임 슬롯을 기다리는 평균 프로세스 수를 의미합니다. 다음은 시스템로드를 해석 하는 올바른 방법에 대한 또 다른 대답 입니다.

일상 생활에서 30+ 이상의 하중은 대부분 약간의 문제를 의미합니다.


2

오래된 450Mhz CPU를 먹는 프로세스를 종료 한 후 몇 초 :

여기에 이미지 설명을 입력하십시오


1

즉시 차단하는 프로세스를 반복적으로 시작하면 시작하는 프로세스 수만큼로드가 높아집니다. 시스템이 스왑하지 않을만큼 충분한 RAM이 있다고 가정하면 블로킹 프로세스로 인한로드가 실제로 유해하지 않기 때문에 시스템은 응답을 유지합니다.


1

로드가 200 이상인 서버를 보았습니다.

나는 스트레스 테스트하고 볼 것이다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.