2011-08-04 1 views
6

CPU를 100 % 사용하여 서버를 실행하면 문제가 발생합니까 아니면 CPU 사용률이 좋은가?CPU를 100 % 사용하여 서버를 실행하면 문제가 발생합니까 아니면 CPU 사용률이 좋은가?

내 서버에는 "영업 시간"/ 10 시간 동안 100 % 가까이 계속 실행되는 8 개의 물리적 코어가 있습니다.

프로그램은 8 개의 스레드에서 실행되도록 구성되어 있으며 완전히 사용합니다. 성능은 좋지만 기반 시설 관리자는 "최대 서버"에 대해 걱정하고 있습니다.

사용 가능한 리소스를 사용하는 것이 좋습니다. 모든 것이 완전히 활용되지 않는다면 핵심을 많이 가지고 있다는 점은 무엇입니까?

+1

이유가 닫히지 않습니다. 이것은 프로그래밍 질문이 아닌 것처럼 들리지만 *** 프로그래밍 질문 *** - 분산 된 프로그램이 작업에 대응하는지 여부를 결정하는 방법입니다. – sharptooth

+0

앱 및로드에 대한 추가 정보 없이는 말할 수 없습니다. 응답 시간 요구 사항이 있습니까? 부하가 매우 예측 가능합니까? 서버가 항상 유용한 작업을하고 있습니까? 아니면 일부 CPU가 고주파 폴링을 사용하고 있습니까? –

+2

아니요, 응용 프로그램의 하드웨어 준비에 관한 것입니다. – bmargulies

답변

5

이 문제의 소프트웨어 측면에 현재까지 모든 대답이 집중되었습니다. OP가 그렇게 높은 CPU 사용률을 갖는 것이 서버의 하드웨어 안정성에 영향을 미칠 것인지를 아는 데 관심이있을 것으로 생각합니다. 또는 적어도, 나는이 사물의 측면을 상당히 정확하게 볼 수 있다고 생각합니다.

서버의 많은 구성 요소의 신뢰성은 온도에 따라 크게 달라집니다. 이 점에서로드가 적은 서버는 더 시원하게 작동하고 실패 확률은 낮습니다. 그러나 CPU가 냉각 시스템의 최대 허용 온도 (내 PC에서 60ºC)에 도달하면 냉각 시스템이 60ºC를 넘지 않도록 온도를 조절하기 때문에 부하가 높을수록 안정성이 크게 떨어지지 않습니다. 냉각 시스템으로 인해 팬이 더 빨리 움직이게되고 팬이 실패 할 확률이 높아집니다. 이러한 고부하가있는 또 다른 문제가 있습니다. 효과적인 방식으로 열을 인클로저에서 꺼내지 않으면 전체 서버의 온도가 높아져 다른 구성 요소에 영향을줍니다. 더 큰 범위에서 이것을 겪게 될 구성 요소는 전해 콘덴서이지만 다른 구성 요소도 영향을받습니다.

일반적으로 모든 기계의 실현 가능성은 해당 기계의 특대 또는 안전 요소에 크게 비례합니다. 전자 시스템의 신뢰성을 계산하는 데 공식적인 방법이 많이 있습니다. 가장 잘 알려진 것 중 하나는 MIL-HDBK-217F 신뢰성 핸드북이지만 많은 다른 것들이 있습니다 (Telcordia 등). Reliability engineering은 복잡하고 깊이 있고 약간의 마술을 가진 대상입니다.

나는이 주제에 대해 약간의 통찰력을 줄 수 있었으면 좋겠다.

2

부하가 어디서 오는 지에 따라 다릅니다. 로드가 증가하지 않는 일부 데이터 인 경우 - 괜찮아요, 가능한 한 빨리 작업하고 있다면 좋습니다.

부하가 외부에서 오는 경우 - 서버가 StackOverflow와 유사하고 고객의 요청에 서비스를 제공하는 경우와 같이 거의 실시간으로 요청을 처리 할 수 ​​있어야하므로 더 이상 동일하지 않습니다. 판매를 발표하면 부하가 증가하면 어떻게 될지 생각하십시오. 대부분의 요청은 삭제되고 다른 요청은 천천히 진행되며 이로 인해 가난한 고객 경험이 기껏해야 발생합니다.

1

서버는 무엇을하고 있습니까?

  • 수학적 문제를 해결하면 처리하는 모든 것을 원하는 것보다. CPU가 무엇입니까 :
  • 가 실제 사용자에게 서비스를 제공하는 경우, 당신이 사용자 기반 일단 중단하지 않도록 가끔 피크에 대한 약간의 공간이 할 수 있습니다 10 % 또한

에 의해 성장? 정말 계산해야 할 그럴듯한가? 얼마나 많은 I/O가 관련되어야합니까? 이하는 수요 (사용량이 피크

이 문제가 발생하거나, 길 아래에 문제가 발생할 것입니다 거의 예외없이
10

을 기대한다면 -

내가 본 엄지 손가락의 규칙

는 최대 80 %의 평균 부하를 대상으로하는 것입니다 자랍니다.) 웹 서비스 서버에서 100 % CPU 사용률이 좋지 않습니다.

CPU 사용률이 100 %이면 일부 서버가 새 요청을받을 때마다 서버가 시작되기까지 일정 시간 동안 기다려야 할 100 % 확률이 있음을 의미합니다 .

일반적인 성능 단점은 약 70 %입니다. 소리가 낮습니까? 그렇다면 70 %의 사용률로 인해 CPU의 30 %가 낭비되는 것은 아닙니다. 대신, CPU 용량의 70 %가 샘플 기간에 으로 사용되었음을 의미합니다. CPU 측정 메트릭의 경우 샘플 기간은 2 초 정도입니다. 그 2 초 동안, 그 70 %의 붕괴는 고르지 않습니다; 즉, 1 초 동안 100 %, 1 초 동안 40 %와 같은 값일 수 있습니다. 우리가 알고있는 것은 작업이 지연되는 경우 짧은 시간 동안 만 일어날 수 있다는 것을 알고 있기 때문입니다. (사람이 화가 나기를 기다리지 않는 것입니다.)

0

하나의 경우 CPU 사용량이 적 으면 전력 소비가 줄어 듭니다. CPU는 부하가 높지 않을 때 자동으로 빈도를 줄입니다.

또한 CPU 사용량이 상대적으로 낮 으면 각 작업이 최대한 적은 횟수로 중단되기 때문에 대기 시간이 짧아집니다. 반대로 CPU로드가 많으면 문맥 전환이 많이 발생합니다.

데이터베이스 서버, 웹 서버 및 전자 메일 서버와 같은 여러 응용 프로그램을 실행해야하는 경우 CPU 사용량이 적어 모든 작업을위한 공간이 마련됩니다.

놀랍게도, http://goo.gl/Ha2rt

올바른 선택이 낮은 지연 시간을 사용자에게 비용을 절감 조기 하드웨어 오류를 방지하고 기쁘게하는 데 도움이 될 수 있습니다 만들기 참조 자신의 아키텍처와 구현에 대한 HTTP 서버 bewteen 큰 차이가있다.

관련 문제