[이현철]님이 남기신 글:
>-----------------------------------------
>답변자가 기본적으로 참고할 내용입니다.
>- 배포판(옵션) :
>- 커널버전(옵션)
:
>- 데몬버전(예:apache
1.3.27) :
>- 데몬설치유형(RPM/컴파일/기타)
:
>-----------------------------------------
>top명령어를 보면 여러가지가 정보가 나오는데요.
>아래와 같을 경우에 cpu사용률이 알맞은 것인지.. 메모리
사용량과
>cpu사용률을 보면 서버가 어느정도 자기실력을 발휘하는지
알수있다고 하는데
>제가 보면 제대로 서버의cpu와 메모리가 최적화로 움직이는
어떤지
>잘모르겠습니다.
>아래와 같이 load average가 8 이상이 지속되고 있는데요.
>여러가지 이유가 있다고 생각됩니다.만..
>
> 8:38pm up 58 days, 17:36, 4 users, load average: 8.46, 8.38, 6.26
>391 processes: 379 sleeping, 1 running, 11 zombie, 0 stopped
>CPU0 states: 2.0% user, 6.0% system, 0.1% nice, 91.2% idle
>CPU1 states: 2.2% user, 2.0% system, 0.0% nice, 95.1% idle
>CPU2 states: 1.2% user, 7.3% system, 0.0% nice, 90.3% idle
>CPU3 states: 3.0% user, 2.3% system, 0.0% nice, 94.0% idle
>Mem: 3099020K av, 3021228K used, 77792K free, 0K shrd, 448716K
buff
>Swap: 2097096K av, 625264K used, 1471832K free 1523648K cached
========================================
일단은 현재 running 되고 있는 프로세스가 CPU 를 제대로
활용하지
못하고 있는 것 같습니다.
반드시 그렇지는 않지만 보통 LA 가 1 이면 CPU 는 보통 50%
이상을
차지해야 CPU 를 제대로 활용한 셈입니다(예를 들자면).
LA 가 높을 수록 CPU 사용률이 많아야 정상적입니다.
그런데 위의 경우는 그 반대로, LA 가 꽤 놓은데 CPU 사용률이
적다는 것은 해당 프로그램에서 어떤 설정이나 코드
알고리즘이
제대로 튜닝되지 않았다는 내용입니다(알고리즘적인
병목현상).
한가지 예를 들자면,
네트워크 소켓프로그램에서
select(2) 같은 함수를 많이 사용하는데
TIMEOUT 시간을 아주 짧게 주면 CPU 사용률은 상당히 올라갑니다.
그대신 알고리즘적인 병목현상(LA 가 올라가는 경우)은 많이
줄어들게
됩니다.
그 반대로 TIMEOUT 시간을 길게 주면 CPU 사용률은 다소 작지만
어떤 병목현상(위의 경우와 같은)이 일어날 수 있습니다.
해당 프로그램을 튜닝해 보세요.
|