동시에 실행되는 여러 프로세스의 CPU 점유율 계산
몇가지 프로그램의 CPU 점유율을 따로따로 계산하다보니
이런 의문이 생겼습니다.
P1~P10 으로 10개의 프로세스가 있는데
각각 따로 실행하면 9.9%의 프로세스 점유율을 나타냈습니다.
그런데 다른 프로세스가 전혀없는 가상 환경에서
이 프로세스들을 동시에 실행시키면
산술적인 프로세스 점유율은 99%이므로 100%가 안되니까
모든 프로세스가 동작한다고 예측할 수 있을까요?
다르게 생각하면 만약 점유율의 총 합이 100%가 넘는다고 하면
프로세스들을 동시에 실행시킬 수 없다고 판단해야 할까요?
프로세스 점유율의 산술합이 100%가 안된다 하더라도
어느정도 실시간성이 필요한 프로세스가 있다면
실행에 문제가 있을것 같고
프로세스 점유율의 산술합이 100%가 넘는다 해도
문제가 없는 경우도 있을것 같습니다.
커널의 선점성도 고려해야 할 것 같구요.
-----------------------------------
그 외에 여쭤볼게 있는데요
프로세스의 CPU 점유율을 생각할 때 얼마동안의 시간에서
프로세스가 실행된 시간을 점유율이라고 생각하는 건가요?
1초의 CPU 시간중에 500ms 실행되는 프로세스는 50%라고 생각할 수도 있지만
5초중에 500ms 실행되는 동일한 프로세스는 10%가 되니까요
CPU 시간의 기준에 따라 프로세스의 CPU 점유율 계산이 달라지는 것 아닌가요?
TOP 명령어로 측정한 CPU 점유율을 어느정도까지 신뢰해야하는지 어리둥절해집니다.
조언 부탁드립니다.
꽤 정확성이 높습니다.
보통 서버 관리 소프트웨어에서
top이나 sar등을 사용합니다.
그리고 모니터링 대상 프로세스 외에 다른 프로세스도 돌아야 한다는 것을 가정하면 minimum 20%
정도의 여유는 두는 것이 맞다고 보여집니다.
즉, 예를 들어 1시간 동안 모니터링한 평균값이 70%가 넘는다면 '요주의'사항이라고 볼 수 있습니다.
이러한 이론은 서버거나 특수한 목적으로 상요되는 UNIX(Linux)기반의 장비이거나 공통적으로 적용됩니다.
예를 들어 네트워크 장비(스위치나 라우터 등)에서 CPU 점유율이 높으면 관리 시스템의 콘솔에 '장애'라고 떠서
운영자들이 조치를 하게 알려 주니까요.
제가 걱정했던 것
제가 걱정했던 것 중에 하나가 특정 프로세스가 순간적으로 CPU 점유율이 높아지는데
TOP 등의 프로그램이 평균적인 측정만 하기 때문에 포착하지 못하는 경우입니다.
일반적으로 20~30%의 여유가 항상 있도록 관리하는 방법을 많이 사용하시는 건가요?
----
세상을 바꾸는 것은 단 한 사람. 오직 하나님의 사람뿐이다.
http://www.asmlove.co.kr
http://blog.naver.com/gurugio